Kotlin - Null空类型

Kotlin - Null空类型 首页 / Kotlin入门教程 / Kotlin - Null空类型

Kotlin null 安全性是一种从代码中消除空引用风险的程序。如果Kotlin编译器发现在不执行任何其他语句的情况下传递了任何null参数,则会立即引发NullPointerException。

Kotlin的类型系统旨在消除代码中的NullPointerException。 NullPointerException仅可能由于以下原因:

  • 强制调用以引发NullPointerException();
  • 该运算符的未初始化形式,可在某个地方传递和使用的构造函数中使用。
  • 将外部Java代码用作Kotlin是Java的互操作性。

Nullable和Non-Nullable类型

Kotlin类型系统区分可以包含null(可为空的引用)和不能包含null(非空引用)的引用。通常,String的类型不能为空。要使字符串包含空值,无涯教程必须通过?来明确定义它们。后面的字符串为:String?

Nullable类型

Nullable类型通过放置  ? 来声明。在字符串后面为:

var str1: String? = "hello"
str1 = null//ok

Kotlin Nullable类型示例

fun main(args: Array<String>){
var str: String? = "Hello"//变量被声明为可为空
str = null
    print(str)
}

输出:

null

Non-Nullable类型

Non nullable类型是普通字符串,它们声明为String类型,如下所示:

val str: String = null//编译错误
str = "hello"//编译错误 Val 不能被重新分配
var str2: String = "hello"
str2 = null//编译错误

当无涯教程为不可为空的字符串分配空值时会发生什么.

fun main(args: Array<String>){
var str: String = "Hello"
str = null//编译错误
    print(str)
}

输出:

它会生成编译时间错误。

Error:(3, 11) Kotlin: Null can not be a value of a non-null type String

检查条件是否为空

Kotlin的If表达式用于检查条件并返回值。

fun main(args: Array<String>){
  var str: String? = "Hello"    //变量被声明为可为空
  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

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

邱岳的产品手记 -〔邱岳〕

TypeScript开发实战 -〔梁宵〕

系统性能调优必知必会 -〔陶辉〕

Linux内核技术实战课 -〔邵亚方〕

体验设计案例课 -〔炒炒〕

跟着高手学复盘 -〔张鹏〕

朱涛 · Kotlin编程第一课 -〔朱涛〕

超级访谈:对话汤峥嵘 -〔汤峥嵘〕

Midjourney入门实践课 -〔Jovi〕

好记忆不如烂笔头。留下您的足迹吧 :)