- 课程名称:一课掌握Kotlin 突破开发语言瓶颈
- 章节名称:
- 第4章:类型初步
- 4-3空类型安全
- 第4章:类型初步
- 讲师姓名:bennyhuo
- 时间:2022-08-15 22:04
课程内容
-
空类型安全:空指针异常是最常见的错误,为了一劳永逸解决这个麻烦,使用了空类型安全
-
定义指定类型时,都是不再允许再为其赋值
null
-
再声明为某一个类型后,该类型变量都不能设置为
null
-
例子:
var nonNull: String = "Hello"//这里的String与Java的String类型不同,该类型变量不能为null // nonNull = null// 编译器会报错 val length = nonNull.length// 由于根本不会担心为空,所以可以放心使用
-
特殊:
-
需要能兼容空类型,即能为变量赋值为空
var nullable: String? = "Hello"//这里的问号就表明,该变量可以赋值为空。即该变量为可空类型 // 错误写法 val length01 = nullable.length//编译器会报错,因为nullable可能为空,调用其属性会报错 // 正确写法,这是在明确知道变量不会为空的情况下的写法 val length02 = nullable!!.length// 两个惊叹号表示将变量强转成不可空类型,但是也不安全 // 如果变量可能为空,安全写法 val length03 = nullable?.length//如果nullable为空,则变量length03也会是空类型 val length04 = nullable?.length ?: 0//如果nullable为空,会返回?:后面的值,elvis符
-
不能为空类型与可空类型关系
var x: String = "Hello" var y: String? = "World" x = y//报错,类型不匹配Type mismatch y = x//OK,没有问题,说明String是String?类型的子类,毕竟?就可以比原来多一个空类型,集合变大了一个
-
平台类型
-
学习心得
本章内容说明为了解决空指针问题,Kotlin平台真的是操碎了心