Junior — Middle
Történik azonnali másolat a referencia típusú objektumoknál az hozzárendelés során?
sobes.tech MI
Válasz az MI-től
Memóriakezeléssel rendelkező programozási nyelvekben, mint például Swift vagy Objective-C, amikor egy referencia típusú változót rendelünk hozzá, akkor a hivatkozás másolódik, nem maga az objektum. Vagyis, az objektum nem másolódik azonnal, hanem mindkét változó ugyanarra az objektumra kezd el mutatni a memóriában.
Például Swift-ben:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
let person1 = Person(name: "Alice")
let person2 = person1 // A hivatkozás másolódik, nem az objektum
person2.name = "Bob"
print(person1.name) // "Bob" lesz a kimenet, mivel a person1 és person2 ugyanarra az objektumra mutat
Ezért nem történik az objektum azonnali másolása, csak a hivatkozás másolódik rá.