什么是Kotlin double-bang(!!)运算符?
我使用Android Studio将Java转换为Kotlin。 在实例variables之后,我得到了双重爆炸。 什么是双重的,更重要的是这个记录在哪里?
mMap!!.addMarker(MarkerOptions().position(london).title("Marker in London"))
这是不安全的可空types( T?
)转换为不可空types( T
)。 如果值为null
,它将抛出NullPointerException
。
这里记载的是与Kotlin无效安全的手段。
这是一个例子,使事情更清楚。 说你有这个function
fun main(args: Array) { var email: String; email = null println(email); }
这将产生以下编译错误。
Null can not be a value of a non-null type String
现在,您可以通过向String
types添加一个问号来使其不可用。
所以我们有
fun main(args: Array) { var email: String?; email = null println(email); }
这产生了一个结果
null
现在,如果我们希望函数在email的值为空时抛出exception,我们可以在电子邮件的末尾添加两个惊叹号。 喜欢这个
fun main(args: Array) { var email: String?; email = null println(email!!); }
这将抛出一个KotlinNullPointerException