栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kotlin - 空安全 null

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kotlin - 空安全 null

在声明变量的时候,就要指定它是 Nullable可空类型 还是 Non-Null非空类型。默认为非空类型,即该变量不会为null,为null报错。

声明 Non-Null 非空类型:
val a :String = "你好"
val b :String = null    //赋值为null报错:Null can not be a value of a non-null type String
声明 Nullable 可空类型:
val c :String? = null
val d = c   //d的类型和c一样为 String?
可空类型 不能直接赋值给 非空类型,也不能直接调用: 
?变量类型后面加上?表示可为null,是可空类型
?.安全调用操作符,为null返回null,不为null正常调用
?:Elvis操作符,左侧不为null执行左侧,否则执行右侧
!!非空断言,主观认定不会为null的时候使用,为null报错
var a:String  = "你好"
val b: String? = null

a = b   //直接赋值报错:Type mismatch: inferred type is String? but String was expected
a = if (b!= null) c else "还行"   //一般写法:判断后赋值
a = b ?: "还行"   //使用Elvis,左侧不为null执行左侧,为null执行右侧
a = b !! //使用 非空断言,主观认定不会为null的时候调用,为null会报错:NullPinterException

println(b.length)   //可空类型调用的时候要带上?,否则IDE直接提示错误
println(b?.length)  //安全调用,c为null返回null,不为null正常调用。打印:null
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/711018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号