最适合Android程序员的kotlin笔记

最适合Android程序员的kotlin笔记——类型系统

2020-01-06  本文已影响0人  朱_c713

引言:

kotlin对可空的类型和只读集合的支持是特别的
kotlin 去掉了java类型系统中不必要的细节或者有问题的特性,比如把数组当成头等公民来支持

可空性

    fun strLen(s: String?) = s.length

注意:
Type?相当于 Type or null

以传参为例,如果加入了问号,就相当于,可以传入null。因此上面的方法就会被编译器识别,s.length下划线红色,报错。没有问号的类型表示这种类型的变量不能存储null引用,因此去掉问号,编译器识别为正常。

类型的含义

安全调用符——“?.”

        s?.toUpperCase()

上面的代码就相当于:

   if (s!=null)  s.toUpperCase()  else  null

即:如果你试图调用一个非空值的方法,该方法会正常执行,否则调用不会发生,而整个表达式的值为null
注意:这次调用的结果类型也是可空的,即s?.toUpperCase() 的结果类型是:String?

Elvis运算符——“?:”

我们可以在代码代用的过程中使用Type? ,在代码调用的下游,使用?: 赋一个默认值来保证程序正常运行。
或者在代码的上游如下所示:val t:String=s?: "" 为变量赋一个默认初始值,来防止空异常。这一切取决你

非空断言——“!!”

kotlin为String提供的额外函数

.isEmpty()
.isBlank()
.isEmptyOrNull()
.isNullOrBlank()

Any和Any?

Unit类型——kotlin的void

Nothing类型:这个函数永不返回

可空性和集合

List<Int?> 可以持有Int 或者Null

上一篇下一篇

猜你喜欢

热点阅读