Pílula K #03 — Qual a diferença entre Var e Val no Kotlin?

Klaus Dellano
HavanLabs
Published in
3 min readOct 16, 2023

Já tentou explicar Kotlin para alguém que não é programador? Não é fácil, mas existem dois grandes benefícios de Kotlin que explicamos na "Pílula K #01" ( interoperabilidade com Java e a facilidade de indicar “sem valor”).

Mas há outro recurso do Kotlin que também é importante entender: var e val.

No programa que estiver desenvolvendo, obviamente precisará armazenar informações para usar quando desejar. Ai que entram os “identificadores”.

Quando você cria um identificador para armazenar dados, precisa decidir se essas informações podem ser reatribuídas. No Kotlin, essa decisão é feita usando duas palavras-chave: var e val.

  • VAR é a abreviação de variável, o que significa que você pode reatribuir seu conteúdo.
  • VAL, por outro lado, é a abreviação de valor, o que significa que você só pode inicializá-lo; NÃO pode reatribuí-lo.

Aqui está como você define um var:

var identificador = ...informação...

E aqui está como você define um val:

val identificador = ...informação...

Quando você define um var, pode alterar as informações que ele armazena a qualquer momento. Isso é chamado de mutabilidade (relaxe, é apenas um nome bonitinho pra dizer que pode “mudar”… e quando não puder mudar, chamamos de imutabilidade).

var soma = 1
soma = soma + 2
soma += 3
println(soma)

/* Saída
6
*/
  • Atribui o valor 1 ao identificador soma.
  • A atribuição soma = soma + 2 pega o valor atual de soma, adiciona dois e atribui o resultado de volta a soma.
  • A atribuição soma += 3 significa a mesma coisa que soma = soma + 3.
  • O operador += pega o valor anterior armazenado em soma e o aumenta em 3, atribuindo esse novo resultado de volta a soma.
  • A função println mostra na tela o valor atribuído a soma, no exemplo, o número seis.

Mas à medida que a complexidade do seu programa aumenta, seu código será mais claro, seguro e fácil de entender se os valores representados pelos seus identificadores não puderem ser alterados, ou seja, quando precisar de imutabilidade (viu? nome bonitinho…). É aí que entra o val.

val nome = "Klaus"
val pi = 3.14
val gravidadeNaTerra = 9.8

Depois de inicializar um val, você não pode reatribuí-lo. Por exemplo, se tentarmos reatribuir nome para uma String (texto.. lembra?) diferente, o Kotlin fica chateado com você, e diz que o "Val não pode ser reatribuído".

val nome = "Klaus"
nome = "Klaus Xuxubeleza"
// o Kotlin começa quebrar tudo e seu programa para de funcionar

Em geral, é recomendado usar val em vez de var sempre que possível. Não só é mais legível, mas também é mais seguro e fácil de entender. E quando você precisar usar var, sempre escolha nomes descritivos para seus identificadores para tornar o código mais compreensível.

Então, da próxima vez que você estiver escrevendo código Kotlin, lembre-se das palavras-chave var e val e escolha sabiamente! 😎🚀

Esta dose é baseado em https://kotlinlang.org/docs/properties.html

--

--

Klaus Dellano
HavanLabs

Developer Engineer at HAVAN, focusing on Mobile and RFID.