- Kotlin环境设置(命令行)
- Kotlin Hello World程序(命令行)
- Kotlin程序概念解释
- Kotlin开发环境设置(IDE)
- Kotlin第一个程序(IDE)
- Kotlin变量
- Kotlin数据类型
- Kotlin类型转换
- Kotlin运算符
- Kotlin表达式、语句和块
- Kotlin标准输入/输出
- Kotlin注释
- 控制流程
- 函数
- 数组
- 字符串
- 异常处理
- 空安全
- 集合
- 注解
- 反射
- Kotlin OOP
- 范围
- Java互操作性
- 正则表达式
Kotlin可空和非可空类型
Kotlin null
安全性是一种消除代码中空引用风险的过程。 如果Kotlin编译器发现任何null
参数而仍然执行null
引用相关语句,则会立即抛出NullPointerException
。
Kotlin的类型系统旨在消除代码中的NullPointerException
。NullPointerException
只能用于以下原因:
- 强行调用抛出
NullPointerException
; - 未初始化此运算符,可在构造函数中传递并在某处使用。
- 使用外部Java代码作为Kotlin,是Kotlin与Java互操作性。
Kotlin可空类型和非可空类型
Kotlin类型系统区分可以保持null
(可空引用)和不能保持null
(非null
引用)的引用。 通常,String
类型不可为null
。 要创建保存null
值的字符串,必须通过放置一个?
来明确定义它们。 例如,在String后面使用:String?
可空类型
通过放置一个?
来声明可空类型?
在String后面:
var str1: String? = "hello" str1 = null // ok
Kotlin可空类型的例子
fun main(args: Array<String>){ var str: String? = "Hello" // 变量被声明为可空 str = null print(str) }
执行上面示例代码,得到以下结果 -
null
非可空类型
非可空类型是普通字符串,它们声明为String
类型:
val str: String = null // compile error str = "hello" // compile error Val cannot be reassign var str2: String = "hello" str2 = null // compile error
将null
值赋给非可空字符串时会发生什么?
fun main(args: Array<String>){ var str: String = "Hello" str = null // compile error print(str) }
它将生成编译时错误,如下所示 -
Error:(3, 11) Kotlin: Null can not be a value of a non-null type String
在条件中检查null
Kotlin的if
表达式用于检查条件并返回值。
fun main(args: Array<String>){ var str: String? = "Hello" // variable is declared as nullable var len = if(str!=null) str.length else -1 println("str is : $str") println("str length is : $len") str = null println("str is : $str") len = if(str!=null) str.length else -1 println("b length is : $len") }
执行上面示例代码,得到以下结果 -
str is : Hello str length is : 5 str is : null b length is : -1
上一篇:Kotlin throw关键字
下一篇:Kotlin智能类型转换
扫描二维码
程序员编程王