kotlin空指针
在kotlin中,最为核心的一个内容就是kotlin的空安全判断。他可以通过?
来简单的确定是否为空类型
而接下来要说明的是let
函数,对于任何一个类都继承了该方法。例如
1 | obj.let{obj2? -> |
可以看到,obj对象调用的let函数,后面是lambda表达式,他会直接obj对象本身传递到函数中,就是obj2,如果只有一个参数,也可以直接省略,用it代替。而let的特性让他特别适合处理空指针检查
下面示例一个普通的空指针检查
1 | fun doStudy(study: Study?){ |
在kotlin中,你用if判断完后,他会自动检测,然后转化为非空的study类,然后就可以正常的调用。
而如果使用let的话,就会是下面这种情况
1 | fun doStudy(study: Study?){ |
只有当study不是null时,才会执行let内的内容。
只有以上内容或许还看不出let的好处。下面再介绍一个
let可以处理全局变量的判空问题,而if无法做到
1 | var study: Study? = null |
这个函数再编译时会报错,因为对于全局的变量随时有可能会被其他线程修改。任然无法保证没有空指针风险,而通过let就不会有这种问题了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小贺同学的blog!
评论