Avatar ·

Kotlin中const和val的区别是什么?何时使用哪个?

你好!我开始学习Kotlin,但一直搞不懂`const`和`val`的区别。似乎两者都声明不可变的值,但当我尝试在函数内部或使用某些表达式时使用`const`,编译器会报错。 下面是一个让我困惑的例子: ```kotlin // 这能工作 val name = "John" val currentTime = System.currentTimeMillis() // 但这不能工作——编译错误 const val name2 = "John" const val currentTime2 = System.currentTimeMillis() // 错误! ``` 为什么`const val currentTime2`无法编译?毕竟`val`也是不可变的。我还注意到`const`只能在文件级别或`object`内部使用,而`val`可以在任何地方使用。这里的深层区别是什么?什么时候该用`const`,什么时候只用`val`? 请用例子解释一下。非常感谢! <<>>

主要区别:计算时间和存储方式

const和val都创建不可变(