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 ցույց են տալիս նույն օբյեկտին
Այսպիսով, անմիջապես օբյեկտի պատճենը տեղի չի ունենում, միայն հղման պատճենն է կատարվում։