Sobes.tech
Junior — Middle

Czy podczas przypisywania następuje natychmiastowa kopia obiektów typu referencyjnego?

sobes.tech AI

Odpowiedź od AI

W językach programowania z zarządzaniem pamięcią, takich jak Swift czy Objective-C, podczas przypisywania zmiennej typu referencyjnego, kopiowana jest referencja, a nie sam obiekt. Oznacza to, że obiekt nie jest kopiowany natychmiastowo, lecz obie zmienne zaczynają wskazywać na ten sam obiekt w pamięci.

Na przykład, w Swift:

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

let person1 = Person(name: "Alice")
let person2 = person1 // Kopiuje się referencja, nie obiekt
person2.name = "Bob"
print(person1.name) // Wyświetli "Bob", ponieważ person1 i person2 wskazują na ten sam obiekt

W związku z tym, nie dochodzi do natychmiastowej kopii obiektu, a jedynie do skopiowania referencji do niego.