Kotlin開發之旅《一》— 初學者Kotlin基礎必備

codeGoogle發表於2017-08-02

如果對Kotlin不太瞭解的童鞋們請參考

Kotlin成為Android開發首選語言——你絕對不能錯過的

blog.csdn.net/androidstar…

推薦幾個學習的地址:

官網文件:

kotlinlang.org/docs/refere…

最全最值得去學習的文件,把他 當做一本詞典用,效率會提高的更加快些

官網:

kotlinlang.org/

官網是個很不多的學習的地方

至於Kotlin是什麼,簡單的說就是跑在jvm上的新語言,他的特點就是短小 ,至於有什麼好處,那就說不完啊,挑特點來說。

  • 無縫對接java,可以java程式碼和kotlin程式碼互相呼叫

  • 函式擴充套件功能,再也不知道啥叫繼承

  • Kotlin 是一個基於 JVM 的程式語言,與 Java 有很深的淵源。

  • 它能與 Java 100% 互通,具備諸多 Java 尚不支援的新特性。

  • 一鍵java轉kotlin,如果你有遺留的java程式碼,可以一鍵轉換,Kotlin 可以編譯成 Java 位元組碼,也可以編譯成 JavaScript ,方便在沒有 JVM 的裝置上執行

  • 可用於移動端以及 Web 開發,是一種全棧式開發語言

建立我的第一個kotlin!

  • 首先開啟你的AS,像往常一樣,建立一個Android應用。

  • 然後在Setting裡找到Plugin選項,搜尋kotlin外掛。從官方倉庫下載安卓即可。

    kotlin-android-extensions-1.1.2-4.jar的下載地址為:

    download.csdn.net/detail/andr…

  • 在app的gradle下加入如下程式碼
apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'複製程式碼

在總工程project的gradle下加入如下程式碼:(大部分是自動生成的)

dependencies {
        classpath 'com.android.tools.build:gradle:2.2.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }複製程式碼

在model下面的gradle下加入如下程式碼(注意你自己配置的時候,改成最新版本)

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4"複製程式碼

這裡我用的是已下載好的jar

compile files('libs/kotlin-android-extensions-1.1.2-4.jar')複製程式碼

將Hello World編為Hello Kotlin

Markdown
Markdown

轉換後

Markdown
Markdown

將兩斷程式碼做一個比較,可以看到的語法變化有:

  • extends 變成了 :
    函式定義關鍵字變為了fun
  • 分號不見了
  • 變數名稱寫在了型別前面
  • 這些是語法的變化,到後面還會有一些,用得多了,也就記住了。後面再遇到語法變化還會繼續總結。

首先給xml檔案裡的Button加一個id

<Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btn_onclick01"
        android:text="點選事件"/>複製程式碼

在以往的java程式碼中,想要Button的文字,需要先findviewbyid()之後再setText(),控制元件多了就很臃腫。是時候試試kotlin了!

下面用kotlin實現同樣的功能,程式碼如下:

btn_onclick01.text = "123";複製程式碼

點選事件也變為:

btn_onclick01.setOnClickListener {
           view -> btn_onclick01.text = "androidstarjack歡迎你";
}複製程式碼

findviewbyid不見了,取而代之的是直接寫id。kotlin可以直接根據id找到控制元件,而避免findviewbyid,這時候你需要注意一下import頭,匯入這個東西才可以

import kotlinx.android.synthetic.main.activity_main_kotlin.*複製程式碼

另外,setText也不見了。這是kotlin的一個特性,所有getter和setter可以省略,直接變為 .text

感覺如何?程式碼量是不是減少了許多,實際上這只是鳳毛麟角而已啦。

Java和Kotlin作比較

變數

  • Java

      String lan = "Hello Kotlin";
    
      final String lan = "Hello Kotlin";複製程式碼
  • Kotlin

      var lan = "Hello Kotlin"
    
      val lan = "Hello Kotlin"複製程式碼

    列印字串:

  • Java

    
      System.out.print("Hello Kotlin");
    
      System.out.println("Hello Kotlin");複製程式碼
  • Kotlin (類似於C/C++)

      print("Hello Kotlin");
    
      println("Hello Kotlin");複製程式碼

建立實體類

  • java

      class Studenty private constructor() {
    
          private var name: String? = null
    
          private var age: Int = 25
    
          private var level:Int? = 0;
    
          private var sex:String = "男";
    
          constructor (name: String, age: Int,level: Int,sex : String): this() {
    
              this.name = name
              this.age = age
              this.level = level
              this.sex = sex
          }
    
      }複製程式碼
  • kotlin

      class Studenty private constructor() {
    
          private var name: String? = null
    
          private var age: Int = 25
    
          private var level:Int? = 0;
    
          private var sex:String = "男";
    
          constructor (name: String, age: Int,level: Int,sex : String): this() {
    
              this.name = name
              this.age = age
              this.level = level
              this.sex = sex
          }
    
      }複製程式碼

    關於Java to Kotlin的語法有很多,下次我們做一個 Kotlin的語法總結,以便於你快速認識 Kotlin 這門語言。

相關部落格地址:

github.com/androidstar…

如果你覺得此文對您有所幫助,歡迎入群 QQ交流群 :232203809
微信公眾號:終端研發部

技術+職場
技術+職場

相關文章