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 δείχνουν στο ίδιο αντικείμενο
Έτσι, δεν πραγματοποιείται άμεση αντιγραφή του αντικειμένου, μόνο η αναφορά σε αυτό αντιγράφεται.