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.