kotlin中学习笔记——null
来源:互联网 发布:手机淘宝抢购页面刷新 编辑:程序博客网 时间:2024/05/01 11:10
Kotlin学习笔记系列:http://blog.csdn.net/column/details/16696.html
指定一个变量可null是通过在它的类型后面加?号,如
val a: String? = null(注意这个Int也可为空是因为在kotlin中一切都是对象,包括在java中的基本类型)
一个可null类型,没有进行检查前不能使用,如下代码会编译出错
val a: String? = nulla.subString(2)
kotlin另外一个特性是当我们检查了一个可null类型,这个对象会自动转型成不可null类型,这就是Kotlin编译器的智能转换,如
val a: String? = nullif(a != null){ a.subString(2)}在if语句中,a从Int?变成了Int,所以可以直接使用。但是在if代码外,则需要重新检查。
当然这仅仅在变量当前不能被改变的前提下,如果变量可能被另外线程改变就会变得复杂。
如果我们处处去做判断,代码会臃肿起来,kotlin中有更简洁的处理方式,如:
val a: String? = nulla?.subString()我们使用安全访问符"?",只有当不为null的时候才执行这行代码。否则不会做任何事情。
但是注意如果有赋值行为的话,a为null的话会返回null,如:
val a: String? = nullval s = a?.subString()s会被赋值为null
kotlin中还有一种_Elvis operator_(?:)操作符,使用如下:
val a: String? = nullval s = a?.subString(2) ?: ""val s = a?.subString(2) ?: return falseval s = a?.subString(2) ?: throw IllegalStateException()在kotlin中return和throw都是表达式,所以可以用在_Elvis operator_操作符右边
当我们确定一个非null变量不为null,我们可以使用"!!"来强制跳过检查正常编译,如:
val a: String? = nulla!!.subString(2)当然不推荐经常使用,因为是未经检验的存在null指针崩溃的可能。
在android新版本中,我们可以用@Nullable和@NotNull注解来辨别参数是否可以为空或者函数返回是否可以为空。
阅读全文
0 0
- kotlin中学习笔记——null
- Kotlin学习笔记——Kotlin中的null安全
- Kotlin随笔 — Null安全性
- kotlin学习笔记001——kotlin简介
- Kotlin学习笔记——标准库kotlin
- Kotlin学习笔记——标准库kotlin.system
- Kotlin学习笔记——标准库kotlin.io
- Kotlin学习笔记——标准库kotlin.collections
- Kotlin学习笔记——安装配置kotlin
- kotlin学习笔记——Kotlin Android Extensions
- Kotlin学习笔记——基本类型
- Kotlin学习笔记——Day1
- Kotlin学习笔记——Day2
- Kotlin学习笔记——使用databinding
- Kotlin学习笔记——注解
- Kotlin学习笔记——泛型
- Kotlin学习笔记——Dagger2
- Kotlin学习笔记——填坑
- Nginx服务状态监控
- 基于Spring框架的Shiro配置
- 使用Virtual Machine Manager 创建和管理虚拟机
- idea工具远程进行debug方式
- C语言双感叹号作用!!
- kotlin中学习笔记——null
- Java程序员们最常犯的10个错误
- 泛型
- session常用方法示例
- 2964: Boss单挑战
- 上云实践之使用VPN网关轻松构建混合云
- Apache的Order Allow,Deny 详解
- DRDS向ADS数据迁移指南
- [bzoj2276][POI2011]Temperature(单调队列)