Junior — Middle
Είναι δυνατόν να υλοποιηθεί μια δομή δεδομένων χρησιμοποιώντας αδύναμες αναφορές;
sobes.tech AI
Απάντηση από AI
Ναι, στο iOS (Swift/Objective-C) είναι δυνατή η υλοποίηση δομών δεδομένων με τη χρήση αδύναμων αναφορών (weak references). Αυτό είναι ιδιαίτερα χρήσιμο για την αποτροπή κυκλικών αναφορών και διαρροών μνήμης.
Για παράδειγμα, κατά την υλοποίηση μιας διπλά συνδεδεμένης λίστας ή ενός γράφου, όπου τα αντικείμενα αναφέρονται το ένα στο άλλο, οι αδύναμες αναφορές επιτρέπουν σε μια από τις πλευρές να μην διατηρεί το αντικείμενο στη μνήμη αν δεν υπάρχουν ισχυρές αναφορές σε αυτό.
Παράδειγμα σε Swift:
class Node {
var value: Int
weak var parent: Node? // αδύναμη αναφορά
var children: [Node] = []
init(value: Int) {
self.value = value
}
}
Εδώ, το parent είναι μια αδύναμη αναφορά για να αποφευχθεί ένας κύκλος μεταξύ γονέα και παιδιών.