变量与常量(var 和 val)
1. 变量与常量的基本概念
在 Kotlin 中,变量和常量是存储数据的基本单元。它们的声明方式决定了其可变性:
- 变量(
var):值可以多次修改。 - 常量(
val):值只能赋值一次(类似 Java 的final变量)。
2. 声明语法
变量(var)
var variableName: Type = initialValue
- 示例:
var age: Int = 25
age = 26 // 允许修改
常量(val)
val constantName: Type = initialValue
- 示例:
val pi: Double = 3.14159
// pi = 3.14 // 编译错误:val 不可重新赋值
3. 类型推断
Kotlin 支持类型推断,可以省略显式类型声明:
var name = "Alice" // 自动推断为 String
val score = 100 // 自动推断为 Int
4. 使用场景建议
- 优先使用
val:默认使用不可变变量,避免意外修改。 - 仅在需要时使用
var:如循环计数器或需要动态更新的状态。
5. 注意事项
- 必须初始化:Kotlin 要求变量或常量在声明时或构造函数中初始化。
var count: Int // 编译错误:未初始化 - 延迟初始化:使用
lateinit(仅var)或惰性初始化(by lazy,仅val)。lateinit var username: String val heavyData by lazy { loadData() }
6. 与 Java 的对比
| Kotlin | Java | 可变性 |
|---|---|---|
var | 普通变量 | 可变 |
val | final 变量 | 不可变 |
示例代码
fun main() {
val language = "Kotlin" // 常量
var version = 1.4 // 变量
println("$language $version") // 输出:Kotlin 1.4
version = 1.8
println("$language $version") // 输出:Kotlin 1.8
}
最佳实践:尽量使用
val声明不可变数据,减少程序副作用,提高代码可读性和线程安全性。
