- Kotlin系列
0.【翻譯】Using Kotlin for Android Development
1.Kotlin入門(一):變量的聲明和使用
2.Kotlin入門(二):方法的定義和使用
3.Kotlin入門(三):if, when, for, while
4.Kotlin入門(四):null安全(“?”力奋,“?:”榜旦,“!!”)
5.Kotlin入門(五):類與繼承
6.Kotlin入門(六):內(nèi)聯(lián)方法
7.Kotlin入門(七):enum,data景殷,sealed溅呢,object
if,else
-
與Java的相同點
Kotlin中的if滨彻,else可以像Java一樣使用:
fun method(num: Int) {
if (num > 100) {
print(">100")
} else if (num > 80) {
print(">80")
} else {
print("else")
}
}
-
與Java的不同點
Kotlin中if藕届,else比Java中多了返回值得功能,需要將返回值放到最后:
val max = if (a > b) {
println("action a")
a
} else {
println("action b")
b
}
所以很容易實現(xiàn)Java中三目運算符的造型:
val max = if (a > b) a else b
when
-
相比于switch
when 與Java中的switch類似亭饵,不過功能更強大:
when (x) {
0 -> print(0) //x=0時
1, 2 -> print("1,2") //x=1或x=2時
in 3..10 -> print("3..10") //x在3到10之間時
!in 10..20 -> print("!in 10..20") //x 不在10到20之間時
else -> print("else") //當(dāng)上面條件都不成立時
}
-
代替if休偶,else
when可實現(xiàn)if,else的效果:
when {
a > b -> print("a>b")
b > c -> print("b>c")
else -> print("else")
}
for
- 實現(xiàn)foreach的效果
var list=arrayListOf("1","2","3")
for(item in list){
println(item)
}
還可以用下面兩種方法輪詢:
for (i in list.indices) {
println(list[i])
}
for (i in 0..list.size - 1) {
println(list[i])
}
如何輪詢時要獲得index和value辜羊,可用下面方法
for((index,value) in list.withIndex()){
print("index:$index; value:$value")
}
- 實現(xiàn)Java中for的效果
//從1到10(包括10)踏兜,步長為1
for (i in 1..10) {
println(i)
}
//從1到10(不包括10),步長為1
for (i in 1 until 10) {
println(i)
}
//從1到10八秃,步長為2
for (i in 1..10 step 2) {
println(i)
}
//從10到0倒數(shù)碱妆,步長為3
for (i in 10 downTo(0) step 3) {
println(i)
}
while
- while與Java中的用法相同
while (x < 10) {
print(x)
x++;
}
while (true) {
print("haha")
break
}
- do,while也與Java中的用法相同
do {
println(x)
x++;
} while (x < 10)
break & continue
在多重循環(huán)中可用 “標(biāo)記名+@”在循環(huán)體外做標(biāo)記昔驱,跳轉(zhuǎn)時添加“@+標(biāo)記名”跳到對應(yīng)的位置疹尾,如:
fun main() {
i@
for (i in 0..3) {
println()
j@
for (j in 0..3) {
if (i > 2) {
break@i
}
if (j % 2 == 0) {
continue@j
}
print("[$i : $j] ")
}
}
}
輸出:
[0 : 1] [0 : 3]
[1 : 1] [1 : 3]
[2 : 1] [2 : 3]