Proprietà calcolate con get/set
Crei proprietà calcolate (di sola lettura e in lettura-scrittura) usando get/set, garantisca gli invarianti nei setter e utilizzi il controllo degli accessi come private(set).
Proprietà calcolate con get/set è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Swift Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Swift Academy include 4 lezioni in totale.
Panoramica
Le proprietà calcolate derivano i valori al momento dell'accesso e possono sincronizzare lo stato durante l'assegnazione. Le utilizzi per mantenere ordinati gli invarianti.
Proprietà calcolata in sola lettura
Una proprietà calcolata in sola lettura omette set. Mantenga semplici e poco costose le derivazioni.
struct Rectangle {
var width: Double
var height: Double
var area: Double { // read-only computed
width * height
}
}
let r = Rectangle(width: 3, height: 4)
print("area =", r.area) // 12get/set in lettura e scrittura
Aggiunga get/set per una proprietà calcolata in lettura e scrittura che mantenga sincronizzati i valori correlati.
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) // 7Validazione nel setter
I setter possono validare l'input. Quando non specifica un nome personalizzato, può utilizzare il nome implicito newValue.
struct Percentage {
private var _raw: Int = 0 // backing store
var value: Int {
get { _raw }
set { // uses implicit newValue
_raw = min(100, max(0, newValue))
}
}
}
var p = Percentage()
p.value = 120
print(p.value) // 100
p.value = -5
print(p.value) // 0private(set)
Utilizzi private(set) per esporre un valore in lettura, limitando le scritture al tipo stesso.
struct ScoreBoard {
private(set) var highScore = 0 // public read, internal write
mutating func update(_ v: Int) {
if v > highScore { highScore = v }
}
}
var s = ScoreBoard()
s.update(30)
print(s.highScore)
// s.highScore = 50 // error outside the typeNote e suggerimenti
Note:
- Le proprietà calcolate non memorizzano dati: li calcolano su richiesta.
- Non supportano willSet/didSet; inserisca invece la logica in set.
- Mantenga veloci i getter; le operazioni onerose appartengono ai metodi.
Definizione di proprietà calcolata
Verifica rapida: che cosa definisce una proprietà calcolata?
Riepilogo
Riepilogo: costruisca proprietà calcolate in sola lettura e in lettura e scrittura, esegua la validazione in set e utilizzi private(set) per controllare chi può modificare i dati.
Domande Frequenti
La lezione «Proprietà calcolate con get/set» è gratuita?
Sì — il testo completo di «Proprietà calcolate con get/set» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Swift Academy, passa a CoddyKit PRO. Il corso Swift Academy include 4 lezioni in totale.
Cosa imparerò in «Proprietà calcolate con get/set»?
Crei proprietà calcolate (di sola lettura e in lettura-scrittura) usando get/set, garantisca gli invarianti nei setter e utilizzi il controllo degli accessi come private(set). Eserciti Swift Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Swift Academy?
Non è richiesta alcuna esperienza precedente. Swift Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Proprietà calcolate con get/set»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Swift Academy?
Sì. Ogni lezione Swift Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Proprietà e subscript
- lazy e observer delle proprietà
- Proprietà calcolate con get/set
- Subscript per indicizzazioni personalizzate