寫了好長時間的移動端程序,都是基於 Java 的,時代在改變,現在有好多 Kotlin 的示例,雖然不一定以後會用到 Kotlin 去構建工程,但是不好說會有需要參考的 Kotlin 示例,直接看 Kotlin 的工程感覺有點喫力,學一點新的語言,豐富一下自己的技術寬度。
注:以下示例都是基於 Android 平臺
函數聲明和定義
每種語法在函數的使用上都會有些區別,先看看 Kotlin 的函數是怎麼使用的
1、一般函數的聲明
private fun caculate(a : Int, b : Int) : Int{
return a + b
}
上述示例裏面和 Java 最大的區別就是入參的形式,參數名在前,參數類型在後,使用 : 分開,函數聲明的結尾處表示該函數的返回類型
2、匿名函數,在使用線程的時候,很多時候會開闢一個短小的匿名線程類似
var testfun : (Int, Int) -> (Int) = {a,b -> a + b}
var testSum = testfun(3,4);
匿名函數分前後兩部分,前部分表示入參和出參類型,後部分表示實際的處理
變量聲明
var name : String = "a" //一般變量
val age : Int = 19 //常量,類似 Java 的 final 類型
字符串拼接
在最終獲取的字符串上使用 $,表示一個變量名或者變量值,用於替換變量的實際數據
var tmp = 1
val finalStr = "tmp is $tmp"
NULL檢查機制
Kotlin 的 null 安全設計對於聲明可爲空的參數,強制使用時進行判空處理
在函數聲明結束使用 ? 可以,可以返回不符合要求的類型
數字比較
Kotlin 中沒有基礎數字類型,只有封裝的數字類型,定義的每一個變量,都是 Kotlin 封裝的一個對象,通過封裝的對象可以保證不會出現空指針。所以在比較兩個數字時,就只有比較數據大小和對象是否相同。使用三等號 === 表示比較對象地址,雙等號 == 表示比較數值值大小。
位操作符
以下時常用的位操作符,分別是:
shl – 左移位 (對應 Java 的 <<)
shr – 右移位 (對應 Java 的 >>)
ushr – 無符號右移位 (對應 Java 的 >>>)
When 表達式
when 將它的參數和所有的分支條件順序比較,直到某個分支滿足條件,類似 Java 中的 switch-case 語法,不同點在於,支持 is、in 關鍵字。
val items = setOf("android", "ios", "windows")
var x : String? = "123"
when (x) {
// is String -> Log.e("XXX", "333") // 支持類型判斷
in items -> Log.e("XXX", "222") // 支持區間判斷
else -> Log.e("XXX", "111") //輸出 111
}