Sobes.tech
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)