Propriedades armazenadas versus computadas e observadores
Defina propriedades armazenadas e computadas, crie propriedades computadas somente para leitura e com get/set e reaja a alterações com os observadores willSet/didSet.
Propriedades armazenadas versus computadas e observadores é uma aula grátis de Swift Academy no CoddyKit. Esta é a aula 2 de 3. 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 3 aulas no total.
Visão geral
Esta lição contrasta propriedades armazenadas e calculadas e mostra observadores willSet/didSet para reagir a alterações.
Armazenadas vs calculadas
As propriedades armazenadas mantêm dados. As propriedades calculadas calculam um valor quando são acessadas.
struct Rectangle {
// stored properties (hold data)
var width: Double
var height: Double
// computed property (derived on access)
var area: Double {
return width * height // read-only computed
}
}
let r = Rectangle(width: 3, height: 4)
print("area =", r.area) // 12Obtenção e definição calculadas
Adicione obter/definir para criar uma propriedade calculada de leitura e escrita que mantenha os invariantes sincronizados.
struct Circle {
var radius: Double // stored
var diameter: Double { // computed read-write
get { radius * 2 }
set { radius = newValue / 2 }
}
}
var c = Circle(radius: 5)
print(c.diameter) // 10
c.diameter = 14
print(c.radius) // 7Observadores em ação
Os observadores são executados antes e depois das alterações em uma propriedade armazenada. Use newValue/oldValue para obter contexto.
struct Counter {
var value: Int = 0 {
willSet { print("will set to", newValue) }
didSet { print("did set from", oldValue) }
}
}
var cnt = Counter()
cnt.value = 5
cnt.value = 9Observadores vs calculadas
Observações:
- Os observadores se aplicam a propriedades armazenadas, inclusive às que você define em extensões.
- As propriedades calculadas não aceitam observadores — coloque a lógica em definir.
- Os observadores não são chamados durante a inicialização, antes que o armazenamento esteja pronto.
Padrão prático
Combine observadores para normalizar a entrada e uma propriedade calculada para derivar dados de exibição.
struct Score {
var raw: Int = 0 {
didSet {
if raw < 0 { raw = 0 }
if raw > 100 { raw = 100 }
}
}
var label: String {
// computed: derive a label from current raw
if raw >= 90 { return "A" }
if raw >= 80 { return "B" }
if raw >= 70 { return "C" }
return "D"
}
}
var s = Score()
s.raw = 120
print(s.raw, s.label) // 100 A
s.raw = -5
print(s.raw, s.label) // 0 DRegra dos observadores
Verificação rápida: o que é executado antes e depois que uma propriedade armazenada muda?
Recapitulação
Recapitulação: use propriedades armazenadas para dados, propriedades calculadas para valores derivados (obter/definir) e willSet/didSet para reagir a alterações em propriedades armazenadas.
Perguntas Frequentes
A aula “Propriedades armazenadas versus computadas e observadores” é grátis?
Sim — o texto completo de “Propriedades armazenadas versus computadas e observadores” é 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 3 aulas no total.
O que vou aprender em “Propriedades armazenadas versus computadas e observadores”?
Defina propriedades armazenadas e computadas, crie propriedades computadas somente para leitura e com get/set e reaja a alterações com os observadores willSet/didSet. 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 2 de 3.
Quanto tempo leva a aula “Propriedades armazenadas versus computadas e observadores”?
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
- Structs versus Classes, propriedades e inicializadores
- Propriedades armazenadas versus computadas e observadores
- Inicializadores e deinit (classes)