Proqramlaşdırma dillərində zəif (weak) və sahibsiz (unowned) istəklərin yaddaş idarəsində rolu nədir?
sobes.tech Süni İntellekt
AI-dan cavab
Zəif (weak) və sahibsiz (unowned) istinadlar yaddaşın idarə olunması və dövr edən istinadların qarşısını almaq üçün istifadə olunur, bu da yaddaş sızmalarına səbəb ola bilər.
-
Zəif istinadlar (weak): obyektin istinad sayını artırmayan istinadlardır. Əgər zəif istinad göstərdiyi obyekt silinsə, zəif istinad avtomatik olaraq nil olur (Swift-də). Bu, güclü dövrləri, məsələn, delege və sahibi arasında, qarşısını almaq üçün faydalıdır.
-
Sahibsiz istinadlar (unowned): də, obyektin istinad sayını artırmır, lakin istifadə zamanı obyektin həmişə mövcud olduğunu qəbul edir. Əgər obyekt artıq silinibsə, unowned istinada giriş səhv (crash) ilə nəticələnəcək. Bu, referans olunan obyektin həyat dövrünün, istinaddan daha uzun olacağı təmin olunduqda istifadə olunur.
Swift-də nümunə:
class Person {
var apartment: Apartment?
}
class Apartment {
weak var tenant: Person? // weak, dövrü qarşısını almaq üçün
}
Burada, weak istinad Person obyektinin artıq lazım olmadıqda yaddaşda saxlanmasını qarşısını alır.