kotlin與java 7 對比的優勢:
它更加易表現:這是它最重要的優點之一。你可以編寫少得多的代碼。
它更加安全:Kotlin是空安全的,也就是說在我們編譯時期就處理了各種null的情況,避免了執行時異常。如果一個對象可以是null,則我們需要明確地指定它,然后在使用它之前檢查它是否是null。你可以節約很多調試空指針異常的時間,解決掉null引發的bug。
它是函數式的:Kotlin是基于面向對象的語言。但是就如其他很多現代的語言那樣,它使用了很多函數式編程的概念,比如,使用lambda表達式來更方便地解決問題。其中一個很棒的特性就是Collections的處理方式。
它可以擴展函數:這意味著我們可以擴展類的更多的特性,甚至我們沒有權限去訪問這個類中的代碼。
它是高度互操作性的:你可以繼續使用所有的你用Java寫的代碼和庫,因為兩個語言之間的互操作性是完美的。甚至可以在一個項目中使用Kotlin和Java兩種語言混合編程
基本類型
Double64
Float32
Long64
Int32
Short16
Byte8
字面上可以寫明具體的類型。這個不是必須的,但是一個通用的Kotlin實踐時省略變量的類型(我們馬上就能看到),所以我們可以讓編譯器自己去推斷出具體的類型。
vali=12// An IntvaliHex=0x0f// 一個十六進制的Int類型vall=3L// A Longvald=3.5// A Doublevalf=3.5F// A Float
定義常量與變量
可變變量定義:var 關鍵字
var<標識符>:<類型>=<初始化值>
不可變變量定義:val 關鍵字,只能賦值一次的變量(類似Java中final修飾的變量)
val<標識符>:<類型>=<初始化值>
常量與變量都可以沒有初始化值,但是在引用前必須初始化
編譯器支持自動類型判斷,即聲明時可以不指定類型,由編譯器判斷。
字符串模板
$ 表示一個變量名或者變量值
$varName? 表示變量值
${varName.fun()} 表示變量的方法返回值:
NULL檢查機制
Kotlin的空安全設計對于聲明可為空的參數,在使用時要進行空判斷處理,有兩種處理方式,
字段后加 !! 像Java一樣拋出空異常,另一種字段后加 ? 可不做處理返回值為 null或配合 ?: 做空判斷處理
可變長參數函數
函數的變長參數可以用vararg關鍵字進行標識:
fun vars(vararg v:Int){
for(vt in v){
print(vt)
}
}
// 測試
fun main(args:Array){
vars(1,2,3,4,5)// 輸出12345
}