可空类型
本课属于 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 提供的安全处理可空值的方法。
挑战
简单声明以下可空变量:
- 声明一个可空的
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 个值分别打印在不同行
}这节课包含一个小测验。开始学习即可作答,并记录你的进度。
基础知识中的所有课
自己练习: Kotlin 在线编辑器