Kotlin安裝
Android Studio
Idea
Kotlin使用
var關(guān)鍵字聲明可變屬性,val關(guān)鍵字聲明只讀屬性
-
函數(shù)參數(shù)在聲明的時(shí)候可以設(shè)置默認(rèn)值,當(dāng)參數(shù)被忽略的時(shí)候后會(huì)使用默認(rèn)值。比其他語(yǔ)言更加方便。減少了重載。
fun read(b: Array<Byte>, off: Int = 0, len: Int = b.size()){ ... } 還可以在函數(shù)中命名多個(gè)參數(shù),但只選取部分使用。
fun reformat(str: String, normalizeCsase: Boolean = true, upperCaseFirstLetter: Boolean = true, divideByCamelHumps: Boolean = false, wordSeparator: Char = ' '){
...
}
可以使用默認(rèn)參數(shù):
reformat(str)
也可以調(diào)用非默認(rèn)參數(shù):
remormat(str, true, true, false, '')
也可以使用命名對(duì)應(yīng),讓代碼的可讀性更強(qiáng):
reformat(
str,
normalizeCase = true,
uppercaseFirstLetter = true,
divideByCamelHumps = false,
wordSeparator = '')
如果不需要全部參數(shù)的話可以這樣:
reformat(str, wordSeparaptor = '__')
注意,命名參數(shù)語(yǔ)法不能夠用于調(diào)用Java函數(shù)中,因?yàn)镴ava的字節(jié)碼不能保證參數(shù)命名的不變形。
- 可空類型和非可空類型
Kotlin類型致力于消滅空引用。
在Kotlin類型系統(tǒng)中可為空和不可為空的引用是不同的。
val a: String = "abc" //不允許為空
val b: String? = "abc" //允許為空
val l = a.length //允許
val l = b.length //報(bào)錯(cuò)
條件檢查null
val l = if (b != null) b.length else -1
list或者array的索引進(jìn)行迭代,可以使用:
for(I in array.indices){
print(array[I])
}
或者:
for((index, value) in array.withIndex()){
println(the element at $index )
}一個(gè)抽象類或者函數(shù)默認(rèn)open,所以不需要加。