Swift Academy · Aula

Tipos de Valor e Imutabilidade

Veja como let impede a mutação de tipos de valor.

Aula 1 de 413 etapas

Tipos de Valor e Imutabilidade é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 1 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 Swift Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Swift Academy inclui 4 aulas no total.

Estruturas são tipos de valor

Em Swift, struct e enum são tipos de valor. Atribuir um deles a uma nova variável cria uma cópia.

struct Point { var x: Int; var y: Int }
var a = Point(x: 1, y: 2)
var copy = a
copy.x = 99
print(a.x, copy.x)

let bloqueia o valor inteiro

Declarar uma estrutura com let torna o valor inteiro imutável, incluindo todas as suas propriedades.

struct Counter { var value: Int }
let c = Counter(value: 0)
// c.value = 5 // compile error
print(c.value)

var permite mutação

Use var quando pretender alterar as propriedades de uma estrutura depois de criá-la.

struct Counter { var value: Int }
var c = Counter(value: 0)
c.value = 5
print(c.value)

copy na atribuição

Cada variável contém seu próprio copy independente. Alterar uma nunca afeta a outra.

struct Box { var label: String }
var first = Box(label: "A")
var second = first
second.label = "B"
print(first.label, second.label)

Semântica de valor nas funções

Passar uma estrutura para uma função passa uma cópia. O original fora da função permanece inalterado.

struct Score { var points: Int }
func bump(_ s: Score) {
    var local = s
    local.points += 10
}
var s = Score(points: 0)
bump(s)
print(s.points)

Propriedades imutáveis

Uma propriedade declarada com let dentro de uma estrutura nunca pode mudar, nem mesmo em uma instância var.

struct User { let id: Int; var name: String }
var u = User(id: 1, name: "Ada")
u.name = "Bob"
// u.id = 2 // compile error
print(u.id, u.name)

Vetores também são tipos de valor

Array, Dictionary e Set de Swift são estruturas, portanto fazem copy na atribuição.

var a = [1, 2, 3]
var b = a
b.append(4)
print(a)
print(b)

Cadeias de caracteres são tipos de valor

String também é um tipo de valor. Alterar uma cópia deixa o original intacto.

var s1 = "hi"
var s2 = s1
s2 += " there"
print(s1)
print(s2)

Por que os tipos de valor ajudam

A semântica de valor evita erros acidentais de estado compartilhado. É possível raciocinar sobre um valor localmente sem se preocupar com quem mais mantém uma referência.

struct Config { var retries: Int }
let defaultConfig = Config(retries: 3)
var custom = defaultConfig
custom.retries = 5
print(defaultConfig.retries, custom.retries)

Imutabilidade e segurança

Marcar os valores como let sempre que possível torna o código mais seguro e claro. O compilador garante que eles nunca mudem.

let limit = 100
let name = "stable"
print(limit, name)

Reatribuir uma variável let falha

Não é possível reatribuir um vínculo let nem modificar o valor que ele contém.

let pi = 3.14
// pi = 3.15 // compile error
print(pi)

Verificação rápida

Teste o comportamento dos tipos de valor.

Recapitulação

Estruturas e enumerações são tipos de valor: fazem cópias na atribuição e quando são passadas para funções. Um vínculo let bloqueia o valor inteiro, e uma propriedade let nunca pode mudar. Isso proporciona um estado previsível e isolado.

struct P { var n: Int }
var a = P(n: 1)
var b = a
b.n = 9
print(a.n, b.n)
Grátis para começar

Aprenda Swift 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
122
Aulas
409

Perguntas Frequentes

A aula “Tipos de Valor e Imutabilidade” é grátis?

Sim — o texto completo de “Tipos de Valor e Imutabilidade” é 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 Swift Academy, atualize para CoddyKit PRO. O curso de Swift Academy inclui 4 aulas no total.

O que vou aprender em “Tipos de Valor e Imutabilidade”?

Veja como let impede a mutação de tipos de valor. Você pratica Swift 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 Swift Academy?

Nenhuma experiência prévia é necessária. Swift 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 1 de 4.

Quanto tempo leva a aula “Tipos de Valor e Imutabilidade”?

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 Swift Academy?

Sim. Cada aula de Swift 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. Tipos de Valor e Imutabilidade
  2. A Palavra-chave mutating
  3. Mutação e Reatribuição de self
  4. Alternativas sem Mutação
← Voltar para Swift Academy