Junior — Middle
Swift-də tullantıların toplanması mexanizmini və yaddaşın necə idarə olunduğunu izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Swift-də bəzi digər dillərdə olduğu kimi klassik Çöp Toplayıcı (Garbage Collector) yoxdur. Əvəzinə, avtomatik referansların sayılması (ARC - Automatic Reference Counting) mexanizmi istifadə olunur.
ARC belə işləyir: yaddaşdakı hər obyektin referans sayğacı var, bu, obyektə yeni referans yaradıldıqda artır və referans silindikdə və ya nil olunduqda azaldılır. Bir obyektin referans sayğacı sıfıra çatdıqda, obyekt avtomatik olaraq yaddaşdan silinir.
Nümunə:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Иван")
var person2 = person1 // referans sayğacı artır
person1 = nil // sayğac azalır, amma obyekt hələ də yaşayır, çünki person2 ona istinad edir
person2 = nil // sayğac 0 olur və obyekt silinir
Beləliklə, Swift-də yaddaş idarəetməsi avtomatik həyata keçirilir, əl ilə çöp toplayıcı çağırmağa ehtiyac yoxdur, bu da performansı artırır və düzgün istifadə olunduqda yaddaş sızıntılarının qarşısını alır.