Sobes.tech
Junior — Middle

Kas toimub viivitamatu koopiana viite-tüüpi objektide määramisel?

sobes.tech AI

Vastus AI-lt

Mälu haldamisega programmeerimiskeeltes, nagu Swift või Objective-C, kui omistatakse viidetüüpi muutuja, siis kopeeritakse viide, mitte ise objekt. See tähendab, et objekt ei kopeeru koheselt, vaid mõlemad muutujad hakkavad viitama sama objekti poole mälus.

Näiteks Swiftis:

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

let person1 = Person(name: "Alice")
let person2 = person1 // Kopeeritakse viide, mitte objekt
person2.name = "Bob"
print(person1.name) // Näitab "Bob", kuna person1 ja person2 viitavad samale objektile

Seega, objekti kohene koopia ei toimu, vaid kopeeritakse ainult viide sellele.