kotlin之null值安全性

 var a: String =null // 编译错误
var a: String? =null // 编译通过

要允许null值, 需要将变量声明为可为null的字符串类型:String?

fun main(arg: Array<String>) {
    var a: String? =null
    print(a?.length)
}

上面代码是安全调用,如果为null则返回为null

Elcis操作符

fun main(arg: Array<String>) {
    val b: String? = null
    val len: Int = if (b != null) b.length else -1
   
    val len2: Int = b?.length ?: -1   //Elvis操作符表示形式是 ?:  等同于上面语句
    print(len)
    print(len2)

}

!!操作符

  val b: String? = null
    val s = b!!.length
    print(s)

如果b为null ,抛出NPE异常

安全类型的转换

fun main(arg: Array<String>) {
    val b: String? = null
    val s :Int?=b as? Int
    print(s)
}

如果转换失败则返回null

posted on 2018-12-20 13:52  LoaderMan  阅读(472)  评论(0编辑  收藏  举报

导航