Kotlin 常用語法筆記

郭霖第三行代碼讀書筆記!

val 與 var

val(value的簡寫)用來聲明一個不可變的變量,這種變量在初始化賦值之後就在也不能重新賦值,對應java中的final變量。

var(variable的簡寫)用來聲明一個可變的變量,這種變量在初始化賦值之後仍然可以在被重新賦值,對應java中的非final變量。

永遠優先使用val來聲明一個變量,當val無法滿足需求時再使用var。

 

關鍵字 data

data class Study(val name:String, val sex:String)

當一個類前面聲明瞭data關鍵字時,表明這個類是數據類,kotlin會主動自動生成equals()、hasCode()、toString()。

 

集合 list set map

Sist集合

val list = listOf("item1","item2","item3") //初始化賦值後不能後不可變。
val list2 = mutableListOf("item1","item2","item3")//初始化後可變。

Set集合

val set = setOf("item1","item2","item3")//初始化賦值後不能後不可變。
val set2 = mutableSetOf("item1","item2","item3")//初始化後可變。

Map集合

val map = mapOf("item1" to 1,"item2" to 2)//初始化賦值後不能後不可變。
val map2 = mutableMapOf("item1" to 1,"item2" to 2)//初始化後可變。

 

?. 與  ?:

當一個類對象調用其中的變量name時有可能爲空就使用 " ?. "

student?.name      當這個學生類中的name變量爲null時 什麼都不做 相當於java中的判空處理。

student?.name ?: "張三"    當這個學生類中的name變量爲null時,返回 "張三",否則返回student?.name。

 

函數let

fun study(study:Study?){、
   /* 統一添加到 let中不需要每個變量都加?.*/
    study?.let {
        println(it.name)
        println(it.sex)
    }
}

Lambda特性,當Lambda表達式的參數列表中只有一個參數時可以不聲明參數名,直接使用it關鍵字代替。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章