24.Kotlin學習筆記

前沿

《Kotlin for android developers》中文翻譯

摘抄自:https://github.com/wangjiegulu/kotlin-for-android-developers-zh/blob/master/SUMMARY.md

Kotlin的優點

  • 它更加易表現:這是它最重要的優點之一。你可以編寫少得多的代碼。
  • 它更加安全:Kotlin是空安全的,也就是說在我們編譯時期就處理了各種null的情況,避免了執行時異常。如果一個對象可以是null,則我們需要明確地指定它,然后在使用它之前檢查它是否是null。你可以節約很多調試空指針異常的時間,解決掉null引發的bug。
  • 它是函數式的:Kotlin是基于面向對象的語言。但是就如其他很多現代的語言那樣,它使用了很多函數式編程的概念,比如,使用lambda表達式來更方便地解決問題。其中一個很棒的特性就是Collections的處理方式。
  • 它可以擴展函數:這意味著我們可以擴展類的更多的特性,甚至我們沒有權限去訪問這個類中的代碼。
  • 它是高度互操作性的:你可以繼續使用所有的你用Java寫的代碼和庫,因為兩個語言之間的互操作性是完美的。甚至可以在一個項目中使用Kotlin和Java兩種語言混合編程。

空安全

java代碼中我們必須通過非空判斷來避免NullPointerException,但是Kotlin是空安全的,我們需要借助安全操作符(?)來明確的指出一個對象是否能為空。

// 這里不能通過編譯. Artist 不能是null
var notNullArtist: Artist = null

// Artist 可以是 null
var artist: Artist? = null

// 無法編譯, artist可能是null,我們需要進行處理
artist.print()

// 只要在artist != null時才會打印
artist?.print()

// 智能轉換. 如果我們在之前進行了空檢查,則不需要使用安全調用操作符調用
if (artist != null) {
  artist.print()
}

// 只有在確保artist不是null的情況下才能這么調用,否則它會拋出異常
artist!!.print()

// 使用Elvis操作符來給定一個在是null的情況下的替代值
val name = artist?.name ?: "empty"

注釋:Kotlin中var聲明一個變量,和js中類似;val是一個常量,但是有別于java中的final關鍵字
比如:var i : Int = 3 (int類型的變量等于3) val name:String = "zhangsan"(字符創常量name賦值zhangsan)

環境配置(Android Studio)

  • 安裝Kotlin插件,安裝后重啟AS
安裝Kotlin插件.png
  • 和平時你創建Android項目一樣創建一個Android Project
  • 配置Gradle
  • 在Project的build.gradle中加入
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.2-4"
Paste_Image.png
  • 在Module的build.gradle中加入依賴
compile "org.jetbrains.kotlin:kotlin-stdlib-jre7:1.1.2-4"
compile "org.jetbrains.anko:anko-common:0.8.2"

未完待續……

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容