Kotlin可空类型与? ?: ?. !!

可空类型:

在Kotlin中申明一个变量,如果类型后面不加?则不能直接给此变量赋值为null,在类型后面加上?就变成了可空类型,而可空类型可以直接赋值为null

如:

   var name: String = null//Error:Null can not be a value of a non-null type String
   var name1: String? = null//可空类型,可以赋值为null

?. 就是当前面的变量!= nuil 时正常调用,如果为null就为null,

!! 就是当变量为null时,抛出空指针异常

如:

print(name1?.length) //当name1是null时,会输出null

print(name1!!.length)//当name1是null是报npe(Null type error)错误

Elvis运算符 ?:

又称 null 合并运算符。

功能:
接受两个运算数,
若第一个运算数不为null,运算结果就是第一个运算数;
若第一个运算数为null,运算结果就是第二个运算数。

如:

  var name: String? = null
  var nameLen: Int = name?.length ?: 0 //仅仅在左边的表达式结果为空时才会计算?:后面的表达式
  println(nameLen)

猜你喜欢

转载自blog.csdn.net/qq_35462323/article/details/89946811