0Pricing
Swift Academy · Aula

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)  // 12

Obtençã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)     // 7

Observadores 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 = 9

Observadores 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 D

Regra 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

  1. Structs versus Classes, propriedades e inicializadores
  2. Propriedades armazenadas versus computadas e observadores
  3. Inicializadores e deinit (classes)
← Voltar para Swift Academy