Kotlin是如何避免空指针异常的

1. 默认情况下变量不可为null

var rocks:Int = null //error: null can not be a value of a non-null type Int

2. 给类型添加?表示可以为null

var marbles: Int ? = null //编译成功

3. 复杂的引用类型指定元素或该变量是否可为null

//元素可以为null
var lotsofFish : list<String?> = listOf(null , null)
//该变量可以为null
var lotsofFish: list<String>? = null
//变量与元素都可以为null
var lotsofFish : List<String?>? = listOf(null , null)

4. 保留空指针异常

可以在变量上加!!来保留空指针异常

image.png

使用!! 不是一个好主意, 这也是为什么kotlin需要你敲两个!

5. ?:操作符 进行null测试

?: 用来指定如果值为null时表达式的值

var a : Int? = null
a?.dec() ?:0 //因为a为null所以返回0
a = 3
a?.dec() ?:0 // 因为a为3 不为null所以返回 2
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容