什么是Kotlin double-bang(!!)运算符?

我使用Android Studio将Java转换为Kotlin。 在实例variables之后,我得到了双重爆炸。 什么是双重的,更重要的是这个记录在哪里?

mMap!!.addMarker(MarkerOptions().position(london).title("Marker in London")) 

2 Solutions collect form web for “什么是Kotlin double-bang(!!)运算符?”

这是不安全的可空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 

现在,您可以通过向Stringtypes添加一个问号来使其不可用。

所以我们有

 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

  • Kotlin:不能同时应用两个条件检查“return body”函数样式
  • 智能投射到kotlin.String
  • 为什么不安全的.run()调用在Kotlin的空值上工作正常?
  • Kotlin可为空的变量赋值
  • Java to Kotlin转换器和可空方法参数
  • 为什么不安全的.run()调用在Kotlin的空值上工作正常?
  • 在Kotlin中处理可空或空列表的习惯方式
  • 最好的方式来null检查kotlin?
  • 我需要关于Java中的null安全性的建议
  • kotlin反射检查可空类型
  • 在超类中需要'init块引发IllegalArgumentException
  • Kotlin language will be the best programming language for Android.