如果對Kotlin不太瞭解的童鞋們請參考
推薦幾個學習的地址:
官網文件:
最全最值得去學習的文件,把他 當做一本詞典用,效率會提高的更加快些
官網:
官網是個很不多的學習的地方
至於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的下載地址為:
- 在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
轉換後
將兩斷程式碼做一個比較,可以看到的語法變化有:
- 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 這門語言。
相關部落格地址:
如果你覺得此文對您有所幫助,歡迎入群 QQ交流群 :232203809
微信公眾號:終端研發部