Kotlin使用记录

1、Kotlin中NPE理解:
拿这行代码举例

var bundle = intent.getBundleExtra("test")

上面这行代码没有定义类型,系统会自动推断bundle的类型,即intent.getBundleExtra(“test”)返回Bundle则为Bundle类型,返回null则为null,如果返回null时使用bundle!!则肯定会报空指针。所以:不指定类型的行为跟java没有区别,都是需要判空的。

var bundle:Bundle = intent.getBundleExtra("test")

此时我们给出了bundle的类型,并且没有?,即bundle不能赋值为null,当然编译阶段上面这行代码会通过,因为系统不知道后面返回的是null还是别的,但是!到了运行阶段! 肯定会报不允许为空的错误。当然了,上面这行代码你给bundle=null是肯定不允许的,编译阶段就会报错。

var bundle:Bundle? = intent.getBundleExtra("test")

此时我们给出了类型,并且追加了”?” 表明bundle可以为null,所以用到时候一定要进行判空或者安全调用”?.”
总结:不指定变量类型的行为跟java没有区别,需要判空或者安全调用;指定了类型的行为:没有?时赋值null会在编译阶段或者运行阶段报错;带有?时,需要判空或者安全调用”?.”总之建议指定类型,需要赋值null时给个?并使用判空或者安全调用。


list只读列表
mutableList增删列表
dropWhile{predicate}返回剔除符合条件的item后的列表PS:predicate用==作为条件不起作用,原因未知。
filter{predicate}返回符合条件的item组成的列表PS:predicate各种条件都可以。
引用:https://www.jianshu.com/p/fa5abe312269

综上所述,建议用filter{predicate}来操作列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值