Sobes.tech
Junior — Middle

Quais são as diferenças entre as palavras-chave const val e val em Kotlin?

sobes.tech IA

Resposta da IA

Em Kotlin, a palavra-chave val representa uma variável imutável (somente leitura), cujo valor pode ser atribuído uma vez durante a inicialização, mas o próprio valor pode ser calculado em tempo de execução.

const val é uma constante de tempo de compilação, que deve ser de um tipo primitivo ou uma string e deve ser inicializada com um valor conhecido na fase de compilação. Essas constantes podem ser usadas, por exemplo, em anotações ou como parâmetros que requerem constantes.

Principais diferenças:

  • const val é sempre uma constante estática, acessível ao nível da classe (apenas em objetos ou no nível superior).
  • val é uma propriedade imutável comum, que pode ser calculada dinamicamente.

Exemplo:

const val MAX_COUNT = 10 // constante de tempo de compilação
val currentTime = System.currentTimeMillis() // valor calculado em tempo de execução