Kotlin学历之空安全

简述

在java中Null是最常见的陷阱之一,在很多时候不得不写非空判断来增加代码的安全性,随着业务的增长,非空的判断会越来越多,难免会失去控制。kotlin在这个问题上就显得更加的智慧,通过操作符 ?、 !! 来约束可空属性。它是怎么实现的呢?往下看 - -

?操作符

?操作符表示 该属性可能为null ,在使用过程中需要加以判断。

var a: String = "abc"
a =null// 编译错误 根本无法运行

var a: String? = "abc"
a =null// 编译正常

//在使用过程中必须加 判断 不判断编译错误
if(a!=null) print((a as String).length ) else print(-1)
//上面写法有更简单的
a?.length ? : -1 

编译器代码演示

!!操作符

!!操作符 通过下面两次运行比较得出:声明属性b ,可能为空,在直接调用toString函数后控制台打印出null,在使用!!操作符之后直接抛出异常,这就说明在实际应用中,就相当于主动加了throw NullPointerException的异常捕获。

直接toString
使用操作符!!

总结

空安全是kotlin语言区别与java的一个很重的特性,在编程中应用很广泛,这样开发出来的程序更安全。本次学习就到这里,进入下个章节

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 人生苦多,快来 Kotlin ,快速学习Kotlin! 什么是Kotlin? Kotlin 是种静态类型编程...
    任半生嚣狂阅读 26,282评论 9 118
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,991评论 19 139
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,778评论 18 399
  • 世界上有些事情明明不是你的问题,却得由你来承担大部分的责任,而且还根本没地说理去。恰巧在今天我机缘巧合的遇上了如此...
    夏野阅读 243评论 0 0
  • 坏脾气 今天又对儿子发了脾气。已经反反复复多次决心改掉这个很坏的毛病。“只有无能的父母才打骂孩子“。中午睡觉睡不够...
    爱你有点多阅读 235评论 0 0