空安全
fun String.print() {
println(this)
}
val name: String? = null
name?.print()
非空安全
fun String.print() {
println(this)
}
val name: String? = null
name!!.print()
Elvis Operator
val name: String? = null
val show = name ?: "Lucy"
show.print()
相等判断, === 直接判断引用,== 调用对象hashcode和equal方法。
val list1 = listOf(1, 2, 3)
val list2 = listOf(1, 2, 3)
list1 === list2
list1 == list2
list1 !== list2
list1 != list2
try…catch…finally 捕获, throw 抛出异常
val result: Int = try {
"abc".toInt()
} catch (e: NumberFormatException) {
// 作为表达式,需要有返回值
1
} finally {
// 无返回值
println("clear")
}