O que é val em Kotlin?
A palavra-chave val em Kotlin serve para declarar variáveis somente leitura, ou seja, uma vez que você atribui um valor a ela, não dá pra mudar depois. É como se fosse uma constante local — você define o valor e pronto, ele fica fixo dali em diante.
Se você já programou em Java, pode pensar no val como o equivalente ao final. A diferença é que em Kotlin, usar val é muito mais natural e incentivado pela própria linguagem.
Por que usar val?
A grande sacada de usar val é tornar o código mais previsível e seguro. Quando você garante que um valor não vai mudar, fica muito mais fácil de entender o que tá acontecendo no programa. Menos bugs, menos dor de cabeça.
Na prática, a recomendação da comunidade Kotlin é: sempre comece com val. Só troque pra var se realmente precisar alterar o valor depois.
Exemplo prático
fun main() {
val nome = "Kotlin Brasil"
val ano = 2026
println("Bem-vindo ao $nome! Estamos em $ano.")
// Isso aqui daria erro de compilação:
// nome = "Outro nome" // Val cannot be reassigned
}
Perceba que o compilador já infere o tipo automaticamente. O nome é uma String e o ano é um Int, sem precisar declarar isso explicitamente.
val não significa imutável em tudo
Um ponto importante: val garante que a referência não muda, mas o conteúdo do objeto pode mudar. Por exemplo, se você declara uma lista mutável com val, não pode reatribuir a variável, mas pode adicionar itens na lista.
val frutas = mutableListOf("Manga", "Acerola")
frutas.add("Goiaba") // Funciona!
// frutas = mutableListOf("Banana") // Erro! Não pode reatribuir
Essa distinção é fundamental pra quem tá começando com Kotlin. Usar val sempre que possível é uma prática que vai deixar seu código mais limpo e confiável.