Menu
CoddyTech

可空类型

本课属于 Coddy Kotlin 学习旅程的“基础知识”单元。第 13 课,共 93 课。

有时,你确实需要一个可以存储“空值”的变量。例如,用户可能没有中间名,或者搜索可能没有返回任何结果。Kotlin 通过可空类型支持这种情况。

要让类型可以为 null,请在类型名称后添加 ?:

fun main() {
    var middleName: String? = "Marie"
    middleName = null  // 现在可以这样做了!
    
    val age: Int? = null  // 可以存储 Int 值或 null
}

? 告诉 Kotlin:“这个变量可能是 null,所以使用时要小心。”没有 ?,这个类型就不可为 null,永远不能存储 null。

重要:可空类型和不可空类型不同。你不能将可空值直接赋给不可空变量:

fun main() {
    val nullableName: String? = "Alice"
    val regularName: String = nullableName  // 错误!
}

这种区别是有意设计的。它会促使你在使用值之前先处理值为 null 的可能性。在接下来的课程中,你将学习 Kotlin 提供的安全处理可空值的方法。

challenge icon

挑战

简单

声明以下可空变量:

  • 声明一个可空的 String,名称为 nickname,值为 "Shadow"
  • 声明一个可空的 Int,名称为 age,值为 null
  • 声明一个可空的 Double,名称为 balance,值为 99.5

然后使用 println() 将这三个值分别打印在单独的行上。

记得在类型名称后加上 ?,使其可空。打印 null 值时会显示单词 null。

亲手试试

fun main() {
    // TODO:声明以下可为空的变量:
    // 1. 一个名为 'nickname' 的可为空 String 变量,值为 "Shadow"
    // 2. 一个名为 'age' 的可为空 Int 变量,值为 null
    // 3. 一个名为 'balance' 的可为空 Double 变量,值为 99.5
    
    // 然后将这 3 个值分别打印在不同行
    
}
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Kotlin 在线编辑器