1.變量
val(value的簡(jiǎn)寫(xiě))聲明一個(gè)不可變的變量阱佛。
var(variable的簡(jiǎn)寫(xiě))聲明一個(gè)可變的變量超燃。
2.當(dāng)一個(gè)函數(shù)中只有一行代碼時(shí)聘萨,kotlin允許我們不必編寫(xiě)函數(shù)體课竣,可以直接將唯一的以行代碼寫(xiě)在函數(shù)定義的尾部笋额,中間用等號(hào)連接即可元暴。
例:fun methodName(param1: Int, param2: Int) = 0
3.kotlin中的if語(yǔ)句相比于Jave有一個(gè)額外的功能,它可以有返回值兄猩,返回值就是if語(yǔ)句每一個(gè)條件中最后一行代碼的返回值茉盏。
例:fun largerNumber(num1:Int,num2:Int)=if(num1>num2)?num1 else num2
4.kotlin中的when語(yǔ)句有點(diǎn)類(lèi)似于Java中的Switch語(yǔ)句。when語(yǔ)句和if語(yǔ)句一樣枢冤,也是可以有返回值的鸠姨,when語(yǔ)句還允許進(jìn)行類(lèi)型匹配。匹配值——>{執(zhí)行邏輯}
is 關(guān)鍵字 就是類(lèi)型匹配的核心淹真,它相當(dāng)于Java中的instanceof關(guān)鍵字讶迁。
例:
fun checkNumber(num: Number) {
??? when (num) {
??????? is Int-> println("number is Int")
??????? is Double-> println("number is Double")
??????? else ->println("number not support")
??? }
}
when語(yǔ)句還有一種不帶參數(shù)的用法,kotlin中判斷字符串或?qū)ο笫欠裣嗟瓤梢灾苯佑?b>==關(guān)鍵字
例:
fun getScore(name: String) = when {
? ? name.startsWith("Tom") -> 86
? ? name == "Jim" -> 77
? ? name == "Jack" -> 95
? ? name == "Lily" -> 100
? ? else -> 0
}
5.for-in循環(huán)
區(qū)間:val range=0..10? ? ??? ?val? range = 0 until 10
?.. 是創(chuàng)建兩端閉區(qū)間的關(guān)鍵字,[0,10]
until 關(guān)鍵字來(lái)創(chuàng)建一個(gè)左閉右開(kāi)的區(qū)間 ,[0,10)
例:
fun main() {
??? for (i in 0..10) {
??????? println(i)
??? }
}
默認(rèn)情況下核蘸,for-in循環(huán)每次執(zhí)行循環(huán)時(shí)會(huì)在區(qū)間范圍內(nèi)遞增1巍糯,
如果你想跳過(guò)其中一些元素,可以使用 step關(guān)鍵字客扎。
fun main() {
??? for (i in 0until 10 step 2) {
??????? println(i)
??? }
}
在遍歷[0,10)這個(gè)區(qū)間的時(shí)候祟峦,每次執(zhí)行循環(huán)都會(huì)在區(qū)間范圍內(nèi)遞增2(i=i+2)
..和until關(guān)鍵字都要求區(qū)間的左端必須小于等于區(qū)間的右端,創(chuàng)建的都是一個(gè)升序的區(qū)間徙鱼。
如果你想創(chuàng)建一個(gè)降序的區(qū)間宅楞,可以使用 downTo關(guān)鍵字:
fun main() {
??? for (i in 10 downTo 1) {
??????? println(i)
??? }
}
[10,1]的降序區(qū)間
??????????????????????????????????????????????????????????????????????????????? 摘自《第一行代碼——Android(第3版)》
努力學(xué)習(xí),記錄袱吆,分享中..........