先用人话理解
变量就像贴了标签的收纳盒:标签是名字,盒子里放着值。Kotlin 用 `val` 声明不能重新赋值的引用,用 `var` 声明可以重新赋值的变量。能不改就不改,通常优先使用 `val`。
记住这一点
Kotlin 会根据初始值推断类型:`"小林"` 是 `String`,`18` 是 `Int`。字符串里的 `$username` 是字符串模板。`val` 不代表对象内部绝对不可变,而是这个变量不能再指向另一个值。
Kotlin 会根据初始值推断类型:`"小林"` 是 `String`,`18` 是 `Int`。字符串里的 `$username` 是字符串模板。`val` 不代表对象内部绝对不可变,而是这个变量不能再指向另一个值。
看一段代码
先看整体,再留意每一行的中文注释。可以复制到 Kotlin Playground 亲自运行。
Kotlin · 1.9+
fun main() {
val username = "小林" // 声明用户名;Kotlin 会推断它是 String
var age = 18 // 声明年龄;Kotlin 会推断它是 Int
age = age + 1 // var 可以重新赋值
println("你好,$username") // 用 $ 把变量值放进字符串
println("明年年龄:$age") // 输出更新后的年龄
}轮到你动手
抄下来,改一改
把用户名改成你喜欢的名字;再增加一个 val 变量保存最喜欢的编程语言,并打印出来。
小提示:先让原代码成功运行,再一次只改一个地方。
三道小测
先自己选答案,再展开核对。答案不会自动揭晓。
1. 下面哪种声明通常不能再次赋值?
2. `val count = 3` 的类型是什么?
3. Kotlin 的类型推断意味着什么?
1. B. val:声明后不能重新赋值。
2. B. Int:整数常量 3 会被推断为 Int。
3. B. 编译器可根据初始值等信息推断类型。
深入阅读
继续阅读官方基础语法,了解变量、类型和字符串模板。
https://kotlinlang.org/docs/basic-syntax.html ↗