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