Junior
Cosa memorizza esattamente la variabile quando creiamo un oggetto di tipo value?
sobes.tech AI
Risposta dell'AI
Quando creiamo un oggetto di tipo valore (struttura, enumerazione, tupla in Swift), la variabile memorizza una copia dei dati di quell'oggetto direttamente in memoria. Assegnare o passare tale oggetto come parametro comporta una copia del suo contenuto.
Esempi:
struct Point {
var x: Int
var y: Int
}
var p1 = Point(x: 1, y: 2) // La variabile p1 memorizza una copia dei dati (x=1, y=2)
var p2 = p1 // p2 riceve una copia dei dati di p1. Sono copie indipendenti.
p1.x = 10 // Solo p1.x viene modificato
print(p2.x) // Mostrerà 1, poiché p2 non è cambiato
Confronto con tipo di riferimento (classe):
| Caratteristica | Tipo di Valore (struttura, enum) | Tipo di Riferimento (classe) |
|---|---|---|
| Cosa viene memorizzato nella variabile | Copia dei dati dell'oggetto | Riferimento all'oggetto in memoria |
| Assegnazione / Passaggio | Copia dei dati | Copia del riferimento (puntatore allo stesso oggetto) |
| Modifica | Influisce solo sulla copia corrente | Influisce sull'oggetto a cui il riferimento punta (può influenzare altre variabili che fanno riferimento allo stesso oggetto) |