Avatar ·

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 (