Avatar ·

Kotlin中var和val的区别是什么?何时使用什么?

你好!我刚开始在Java之后学习Kotlin,对变量声明感到困惑。在Java中,我习惯用类型(int, String)和修饰符(final用于常量)声明变量。而在Kotlin中,我看到了两个关键字:var和val。 我了解到val相当于Java中的final,而var是普通的可变变量。但在实践中,我遇到了一些问题。 例如,我写了这样的代码: ```kotlin fun main() { var name = "安娜" name = "玛丽亚" // 这样可以,没问题 val age = 25 age = 30 // 错误!Val cannot be reassigned } ``` val很清楚——不能重新赋值。但如果val存储的不是基本类型,而是一个对象呢?例如: ```kotlin val list = mutableListOf("a", "b") list.add("c") // 这能工作吗? println(list) // 输出 [a, b, c] ``` 这样看来,val不是常量,而只是一个不能更改的引用?还是我理解错了? 另外,我感兴趣的是:什么时候最好使用var,什么时候使用val?这会影响性能吗?