0Pricing
Swift Academy · Lezione

Proprietà calcolate nelle struct

Derivare valori con proprietà calcolate get-only e get/set.

Proprietà calcolate nelle struct è 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.

Benvenuto

Le proprietà calcolate non memorizzano un valore: lo calcolano e lo restituiscono su richiesta. Per chi le usa si comportano come proprietà, ma internamente eseguono codice.

Proprietà calcolata in sola lettura

```swift struct Circle { var radius: Double var area: Double { .pi * radius * radius } var circumference: Double { 2 * .pi * radius } } var c = Circle(radius: 5) print(c.area) // 78.53... ```

get e set

```swift struct Temperature { var celsius: Double var fahrenheit: Double { get { celsius * 9/5 + 32 } set { celsius = (newValue - 32) * 5/9 } } } var t = Temperature(celsius: 0) print(t.fahrenheit) // 32 t.fahrenheit = 212 print(t.celsius) // 100 ```

Forma abbreviata di get — omissione della parola chiave get

Per le proprietà in sola lettura, il wrapper `get { }` è facoltativo: ```swift var area: Double { .pi * radius * radius } // same as { get { ... } } ```

newValue in set

Nel blocco `set`, il valore in arrivo si chiama `newValue` per impostazione predefinita: ```swift set { celsius = (newValue - 32) * 5/9 } ``` In alternativa, può assegnargli esplicitamente un nome: ```swift set(degF) { celsius = (degF - 32) * 5/9 } ```

Le proprietà calcolate non sono memorizzate

Le proprietà calcolate non dispongono di memoria di supporto: ogni accesso esegue il codice: ```swift struct Stats { var scores: [Int] var average: Double { guard !scores.isEmpty else { return 0 } return Double(scores.reduce(0,+)) / Double(scores.count) } } ```

Proprietà calcolate statiche

```swift struct Config { static var appName: String { Bundle.main.infoDictionary?["CFBundleName"] as? String ?? "App" } } print(Config.appName) ```

Proprietà calcolate nei protocolli

```swift protocol Greetable { var greeting: String { get } } struct Person: Greetable { var name: String var greeting: String { "Hello, \(name)!" } } ``` I protocolli possono richiedere proprietà calcolate: è sufficiente specificare `{ get }` o `{ get set }`.

Prestazioni: proprietà calcolate vs memorizzate

• Calcolata: ricalcolata a ogni accesso — eviti calcoli costosi nelle proprietà lette frequentemente • Usi `lazy var` per valori calcolati costosi che servono una sola volta: ```swift lazy var thumbnail: UIImage = generateThumbnail() ```

Corpo costituito da un'espressione vs blocco

Le proprietà calcolate con una singola espressione in Swift 5.9+ restituiscono implicitamente: ```swift var fullName: String { "\(first) \(last)" } // equivalent to: var fullName: String { return "\(first) \(last)" } ```

Verifica rapida

Qual è il nome predefinito del valore in arrivo all'interno di un blocco `set` di una proprietà?

Riepilogo

Punti chiave: • Le proprietà calcolate eseguono codice a ogni accesso: non hanno memoria di supporto • In sola lettura: ometta `get`/`set` oppure usi la forma abbreviata `{ return ... }` • In lettura e scrittura: fornisca i blocchi `get` e `set(newValue)` • Sono ottime per valori derivati come `area`, `fullName` e conversioni di unità • Usi `lazy` per valori costosi calcolati una sola volta Prossimo argomento: metodi mutating.

Domande Frequenti

La lezione «Proprietà calcolate nelle struct» è gratuita?

Sì — il testo completo di «Proprietà calcolate nelle struct» è 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 nelle struct»?

Derivare valori con proprietà calcolate get-only e get/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 nelle struct»?

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

  1. Inizializzatori memberwise e init personalizzati
  2. Proprietà memorizzate e observer delle proprietà
  3. Proprietà calcolate nelle struct
  4. Metodi mutating e semantica copy-on-write
← Torna a Swift Academy