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都创建不可变(