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 ერთსა და იმავე ობიექტს მიუთითებენ

ამიტომ, ობიექტის მომენტალური კოპირება არ ხდება, მხოლოდ მის მითითებაზე ხდება კოპირება.