0Pricing
Swift Academy · Lezione

Tipi valore e immutabilità

Scopri come let impedisce la modifica dei tipi valore.

Tipi valore e immutabilità è una lezione Swift Academy gratuita su CoddyKit. Questa è la lezione 1 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.

Le struct sono tipi valore

In Swift, struct ed enum sono tipi valore. Assegnandone uno a una nuova variabile, se ne crea una copia.

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 blocca l'intero valore

Dichiarare una struct con let rende immutabile l'intero valore, incluse tutte le sue proprietà.

struct Counter { var value: Int }
let c = Counter(value: 0)
// c.value = 5 // compile error
print(c.value)

var consente la mutazione

Utilizzi var quando intende modificare le proprietà di una struct dopo la sua creazione.

struct Counter { var value: Int }
var c = Counter(value: 0)
c.value = 5
print(c.value)

Copia durante l'assegnazione

Ogni variabile contiene una copia indipendente. Modificarne una non influisce mai sull'altra.

struct Box { var label: String }
var first = Box(label: "A")
var second = first
second.label = "B"
print(first.label, second.label)

Semantica dei valori nelle funzioni

Passare una struct a una funzione significa passarne una copia. L'originale esterno alla funzione rimane invariato.

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)

Proprietà immutabili

Una proprietà dichiarata con let all'interno di una struct non può mai cambiare, neppure in un'istanza 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)

Anche gli array sono tipi valore

Gli Array, Dictionary e Set di Swift sono struct, quindi vengono copiati durante l'assegnazione.

var a = [1, 2, 3]
var b = a
b.append(4)
print(a)
print(b)

Le stringhe sono tipi valore

Anche String è un tipo valore. Modificare una copia lascia intatto l'originale.

var s1 = "hi"
var s2 = s1
s2 += " there"
print(s1)
print(s2)

Perché i tipi valore sono utili

La semantica dei valori previene i bug dovuti alla condivisione accidentale dello stato. Può ragionare su un valore localmente senza preoccuparsi di chi altro conservi un riferimento.

struct Config { var retries: Int }
let defaultConfig = Config(retries: 3)
var custom = defaultConfig
custom.retries = 5
print(defaultConfig.retries, custom.retries)

Immutabilità e sicurezza

Dichiarare i valori con let quando possibile rende il codice più sicuro e chiaro. Il compilatore garantisce che non cambino mai.

let limit = 100
let name = "stable"
print(limit, name)

Riassegnare una variabile let genera un errore

Non può riassegnare un'associazione let né modificare il valore che contiene.

let pi = 3.14
// pi = 3.15 // compile error
print(pi)

Verifica rapida

Provi il comportamento dei tipi valore.

Riepilogo

Struct ed enum sono tipi valore: vengono copiati durante l'assegnazione e quando vengono passati alle funzioni. Un'associazione let blocca l'intero valore e una proprietà let non può mai cambiare. Questo garantisce uno stato prevedibile e isolato.

struct P { var n: Int }
var a = P(n: 1)
var b = a
b.n = 9
print(a.n, b.n)

Domande Frequenti

La lezione «Tipi valore e immutabilità» è gratuita?

Sì — il testo completo di «Tipi valore e immutabilità» è 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 «Tipi valore e immutabilità»?

Scopri come let impedisce la modifica dei tipi valore. 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 1 di 4.

Quanto tempo richiede la lezione «Tipi valore e immutabilità»?

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. Tipi valore e immutabilità
  2. La parola chiave mutating
  3. Mutating e riassegnazione di self
  4. Alternative non mutating
← Torna a Swift Academy