Kotlin随笔 — Null安全性

Null安全性

1、定义变量

定义一个变量不能为null

var a: String = "abc"
a = null // 编译错误

若想要允许为null,可以声明一个可空的字符串,写作String?

var b: String? = "abc"
b = null // OK

2、安全调用 ?.

访问ab的方法/属性

val leng1 = a.length
val leng2 = b.length  //错误,b可为空

val leng3 = b?.length  //b是非空的返回长度,否则返回null

3、与空指针有关的几种操作符

(?.)操作符

val leng3 = b?.length  

//当b不为空时返回其长度,为空时返回null

(!!)操作符

val leng = b!!.length

//当b不为空时返回其长度,为空时报NPE

(?:)Elvis操作符

val l = b?.length ?: -1

//当b不为空时,执行"?."左边操作,返回b长度,为空是执行右边操作返回-1

(as?)安全转型操作符
对于有些数据强制转换会报ClassCastException 或者TypeCastException: null cannot be cast to ...,此时需要使用安全转型操作符as?

val aInt: Int? = a as? Int

注:空指针异常NPE:NullPointerException

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值