Tipos de Valor e Imutabilidade
Veja como let impede a mutação de tipos de valor.
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)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
- Tipos de Valor e Imutabilidade
- A Palavra-chave mutating
- Mutação e Reatribuição de self
- Alternativas sem Mutação