Qual é a diferença entre const e val em Kotlin? Quando usar cada um?
Olá! Comecei a estudar Kotlin e não consigo entender a diferença entre `const` e `val`. Ambos parecem declarar valores imutáveis, mas o compilador reclama quando tento usar `const` dentro de uma função ou com algumas expressões.
Aqui está um exemplo que me confunde:
```kotlin
// Isso funciona
val name = "John"
val currentTime = System.currentTimeMillis()
// Isso não funciona - erro de compilação
const val name2 = "John"
const val currentTime2 = System.currentTimeMillis() // Erro!
```
Por que `const val currentTime2` não compila? Já que `val` também é imutável. E também notei que `const` só pode ser usado no nível de arquivo ou dentro de `object`, enquanto `val` pode ser usado em qualquer lugar. Qual é a diferença fundamental aqui? Quando devo usar `const` e quando apenas `val`?
Explique, por favor, com exemplos. Ficarei muito grato!
<<>>
Diferença principal: tempo de computação e forma de armazenamento
const e val ambos criam valores imutáveis (