as强制类型转换
首先声明强制类型转换是非安全的,可能抛出异常。
e.g.:
val x: String = y as String
注意如果y可以为null,而null是不可以转换成String的,就会抛出异常。
怎么改正呢?
val x: String? = y as String?
前后都可以为空对象。
in 范围判断
先介绍一下在kotlin中可以这样表示范围如
1..5
配合in操作符就可以理解其表示的含义
e.g..:
if (i in 1..10) { // equivalent of 1 <= i && i <= 10
println(i)
}
for (i in 1..4) print(i) // prints "1234"
for (i in 4..1) print(i) // prints nothing
for (i in 4 downTo 1) print(i) // prints "4321"
for (i in 1..4 step 2) print(i) // prints "13"
for (i in 1 until 10) { // i in [1, 10), 10 is excluded 不包括10,注意⚠️
println(i)
}
Collections集合与循环/判断
- 迭代器与集合
和其他语言类似:
for (item in items) {
println(item)
}
- 判断元素与集合的关系
when {
"orange" in items -> println("juicy")
"apple" in items -> println("apple is fine too")
}
to be continued