一、空空全
1.字符串的有效性判断
在以往的开发中工作中也不了和各种异常作斗争,常见的异常包括空指针异常(NullPointerException)、数组越界异常(IndexOutOfBoundsException)、类型转换异常(ClassCastException)等,其中最让人头痛的当数空指针异常,该异常频繁发生却又隐藏很深。
在Java中常见的字符串非空判断是的示例代码:
if(str != null && str.length() > 0 && str.trim().length() >0 ){
… …
}
从上述代码中可以看出,非空代码的语句有点长,一次开发者必须会把被多次调用的代码封装成工具类。既然这样想,Android系统的研发工程师也不例外,所以安卓的SDK已经提供“TextUtils.isEmpty(***)”这个公共方法,专门用于效验某个字符串是否为空值。Kotlin的研发人员当然也不会放过这点,Kotlin通过isNUllOrBlank函数对字符串进行空值效验。
下面是Kotlin效验字符串空值的几个方法?
(1)isNullOrEmpty:为空指针或者字符串长度为0时返回true ,非空串与可空串均可调佣
(2)isNullOrBlank:为空指针、子串长度为0或者全为空格时返回true,非空串与可空串均可调用
(3)isEmpty:子串长度为0时返回true,只有非空串可调用
(4)isBlank:子串长度为0或者全为空格时返回true,只有非空串可调用
(5)isNotEmpty:子串长度大于0时返回true,只有非空串可调用
(6)isNotBlank:子串长度大于0且不是全空格串时返回true,只有非空串可调用
2.声明可空变量
var strA: String = "声明的非空变量" var strB: String? = null //声明空变量 var strC: String? = "声明可空变量" lateinit var StrD: String //延迟初始化
3.效验空值的运算符
在Kotlin中我们引入另一种运算符“!!”,表示甭管那么多,强行把变量从可空类型转化为非空类型,从而避免变量是否非空的效验。但是既然运算符“!!”强行放弃非空判断,开发者就得自己主要提前非空判断了,要不然也会空指针异常。
总结一下,Kotlin引入空安全的概念,并在编译时开展变量是否为空的效验。先关的操作符说明概括如下:
(1)声明变量实例时,在类型名称后面加问号,表示该变量可以为空
(2)调用变量方法时,在变量名称后面加问号,表示一旦变量为空就返回null
(3)新引入运算符“?:”,表示一旦变量为空,就返回该运算符右边的表达式
(4)新引入运算符“!!”,通知编译器不做非空效验,如果运行时发现变量为空,就抛出异常。
二、等式判断
简介:等式是编程语言基本的表达式之一,无论哪种高级语言,无一例外都采用双等号“==”判断两个变量是否相等,就算是复杂的判断,在Java中可以通过“equals”函数判断两个变量是否相等。
1.结构相等
基本数据类型如整型、长整型、浮点型、双精度、布尔型等无论在C/C++还是在Java或在Kotlin中,都使用双等号“==”进行两个变量相等性的判断。
字符串等值性的Java与Kotlin判断方式对照关系
字符串的等值性判断要求 | Java的判断方式 | Kotlin的判断方式 |
判断两个字符串是否相等 | strA.equals(strB) | strA == strB |
判断两个字符串是否不等 | !strA.equals(strB) | strA != strB |
推而广之,不单单字符串String类型,凡是Java中实现equals函数的类,其变量均可以在Kotlin中通过运算符“==”和“!=”进行等式判断。这种不比较存储地址,而是比较变量结构内部值的行为,Kotlin称之为结构相等,即模样相等,通俗地说就是一模一样。
2.引用相等
除了值相等以外,还要求引用地址也必须相等,使用运算符三个等号“===”或引用不等的运算符“!==”。
(1)对于基本数据类型,包括整型、浮点型、布尔型、字符串等,结构相等和引用相等没有区别
(2)同一个类声明的不同变量,只要有一个属性不相等,则其即是结构不等,也是引用不等
(3)同一个类声明的不同变量,若equals方法效验的每个属性都相等(譬如通过clone方法克隆而来的变量复制品),则其结构相等,但引用不等。
3.is和in
(1)使用is来效验变量是否为某种类型(反之!is)
(2)使用in来效验或判断变量是否位于某数组或容器中
最后是交流公众号,大家可以关注一下
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/119179.html