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.