Sobes.tech
Junior — Middle

Viene eseguita una copia istantanea degli oggetti di tipo riferimento durante l'assegnazione?

sobes.tech AI

Risposta dell'AI

Nei linguaggi di programmazione con gestione della memoria, come Swift o Objective-C, quando si assegna una variabile di tipo riferimento, si copia il riferimento, non l'oggetto stesso. Cioè, l'oggetto non viene copiato istantaneamente, ma entrambe le variabili iniziano a puntare allo stesso oggetto in memoria.

Ad esempio, in Swift:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

let person1 = Person(name: "Alice")
let person2 = person1 // Si copia il riferimento, non l'oggetto
person2.name = "Bob"
print(person1.name) // Mostrerà "Bob", poiché person1 e person2 puntano allo stesso oggetto

Pertanto, non avviene una copia istantanea dell'oggetto, ma solo la copia del riferimento ad esso.