Avatar ·

Kotlin中var和val有什么区别?何时使用哪个?

大家好!我刚开始在Java之后学习Kotlin,对变量声明感到困惑。Kotlin有两个关键字:var和val。我知道它们都用于创建变量,但无法理解何时该用哪一个。

在Java中,我习惯变量总是可变的,除非指定了final。而这里正好相反——似乎val更常用,但我不明白为什么。

下面是我感到困惑的代码示例:

fun main() {
    var name = "安娜"
    name = "玛丽亚"  // 可以工作
    
    val city = "莫斯科"
    // city = "圣彼得堡"  // 编译错误!
    
    var count = 0
    count = count + 1  // 可以工作
    
    val maxCount = 100
    // maxCount = 200  // 错误!
}

我读到val是不可变引用(像Java中的final),而var是可变引用。但我不太明白