Kotlin Academy · Aula

val versus var: imutabilidade desde o primeiro dia

Entenda a diferença entre val e var e por que a imutabilidade é importante.

Aula 2 de 413 etapas

val versus var: imutabilidade desde o primeiro dia é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.

Duas formas de declarar uma variável

Kotlin tem duas palavras-chave para declarar variáveis: val para referências somente leitura (imutáveis) e var para referências mutáveis. Escolher corretamente é importante.

val: referência somente leitura

val declara uma referência que não pode ser reatribuída depois da inicialização. Pense nela como final em Java.
val name = "Kotlin"
println(name)
// name = "Java" // Error: Val cannot be reassigned

var: referência mutável

var declara uma variável que pode ser reatribuída. Use var somente quando você realmente precisar de mutação.
var counter = 0
counter = 1
counter += 1
println(counter) // 2

Inferência de tipos

Kotlin infere o tipo a partir do valor inicial. Você também pode escrever o tipo explicitamente depois de dois-pontos.
val age = 25          // inferred: Int
val name: String = "Ana"  // explicit type
var score: Double = 0.0

val não significa objeto imutável

val impede a reatribuição da referência, mas o próprio objeto ainda pode ser mutável. Uma MutableList val ainda pode receber itens.
val list = mutableListOf(1, 2, 3)
list.add(4)        // OK! list is val but mutable
// list = mutableListOf() // Error: reassignment

Prefira val por padrão

Os guias de estilo do Kotlin recomendam usar val por padrão. Isso torna o código mais seguro e fácil de compreender. Só mude para var quando a mutação for necessária.
val pi = 3.14159     // constant value
val greeting = "Hi"  // never changes
var retries = 3      // will be decremented

val versus const val

const val é usado para constantes em tempo de compilação (tipos primitivos e String no nível superior ou em um objeto/companheiro). val é uma constante em tempo de execução.
const val MAX_SIZE = 100    // compile-time
val instance = MyClass()    // runtime

var não inicializado

Você pode declarar um var sem inicializá-lo, mas MUST fornecer um tipo e atribuir um valor antes de usá-lo. val sempre precisa ser inicializado.
var result: String
result = "computed"
println(result)

Escopo e ocultação

As variáveis pertencem ao escopo do seu bloco. Escopos internos podem ocultar variáveis externas — mas isso pode causar confusão, portanto use nomes significativos.
val x = 10
run {
    val x = 20  // shadows outer x
    println(x)  // 20
}
println(x)      // 10

Convenções de nomenclatura

Kotlin usa camelCase para variáveis e funções. Constantes (const val) usam UPPER_SNAKE_CASE. Classes usam PascalCase.
val firstName = "Jane"     // camelCase
const val MAX_ITEMS = 50   // UPPER_SNAKE_CASE
class UserProfile           // PascalCase

Por que a imutabilidade é importante

Dados imutáveis são seguros para uso em threads por padrão, mais fáceis de testar e reduzem erros causados por mutações inesperadas. Sempre pergunte: preciso alterar este valor?

Verificação rápida

Qual palavra-chave declara uma referência somente leitura (não reatribuível) em Kotlin?

Recapitulação

val = referência somente leitura, var = mutável. Prefira val. A inferência de tipos permite omitir tipos explícitos. A seguir: os tipos integrados do Kotlin!
Grátis para começar

Aprenda Kotlin com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
51
Aulas
203

Perguntas Frequentes

A aula “val versus var: imutabilidade desde o primeiro dia” é grátis?

Sim — o texto completo de “val versus var: imutabilidade desde o primeiro dia” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.

O que vou aprender em “val versus var: imutabilidade desde o primeiro dia”?

Entenda a diferença entre val e var e por que a imutabilidade é importante. Você pratica Kotlin Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Kotlin Academy?

Nenhuma experiência prévia é necessária. Kotlin Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “val versus var: imutabilidade desde o primeiro dia”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Kotlin Academy?

Sim. Cada aula de Kotlin Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Configurando Kotlin: REPL, IntelliJ e playground on-line
  2. val versus var: imutabilidade desde o primeiro dia
  3. Tipos básicos do Kotlin: Int, Double, Boolean, Char
  4. Seu primeiro programa Kotlin: main, println e entrada
← Voltar para Kotlin Academy