Sobes.tech
Junior — Middle

Կատարվում է արդյոք հղման տիպի օբյեկտների անհապաղ պատճենը նրանց նշանակելիս?

sobes.tech AI

Պատասխան AI-ից

Հիշողության կառավարում ունեցող ծրագրավորման լեզուներում, ինչպիսիք են Swift կամ Objective-C, երբ նշանակվում է հղման տիպի փոփոխական, այն պատճենվում է հղումը, ոչ թե ինքնըստինքյան օբյեկտը։ Այսինքն, օբյեկտը անմիջապես պատճենված չէ, այլ երկու փոփոխականներն էլ սկսում են ցույց տալ նույն օբյեկտին հիշողության մեջ:

Օրինակ, Swift-ում:

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

let person1 = Person(name: "Alice")
let person2 = person1 // Հղումը պատճենվում է, ոչ թե օբյեկտը
person2.name = "Bob"
print(person1.name) // Տպում է "Bob", քանի որ person1 և person2 ցույց են տալիս նույն օբյեկտին

Այսպիսով, անմիջապես օբյեկտի պատճենը տեղի չի ունենում, միայն հղման պատճենն է կատարվում։