空安全
Kotlin系统有一项重要的特点,就是致力于想灭空引用。避免出现NPE(NullPointerException)异常。
在Kotlin中定义一个允许为空的变量定义和不允许为空的定义方式是不一样的。
var a:
String =
"abc"
var b:
String? =
"abc"
b.length
空值检查
val l =
if (b !=
null) b.length()
else -
1
安全调用
b?.
length()
如果b为空,返回,不调用length()
Elvis 操作符
?:
val l =
b.length()?: -1
如果b为空,则l=-1。
检查函数参数一般这么写:
fun foo(node: Node): String? {
val parent = node.getParent() ?:
return null
val name = node.getName() ?: throw IllegalArgumentException(
"name expected")
//
...
}
!!操作符
val b: String? =
null
val l = b!!.length
安全转换
val aInt: Int? = a
as? Int