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

1 篇文章 0 订阅

可空类型:

在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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值