Sobes.tech
Junior — Middle

Swift-də digər dillərdəki GC-yə bənzər avtomatik çöp toplanması var mı?

sobes.tech Süni İntellekt

AI-dan cavab

Swift-də klassik anlamda avtomatik çöp toplayıcı (GC) istifadə edilmir, Java və ya C# kimi. Bunun yerinə, Swift avtomatik referans sayımı (ARC — Automatic Reference Counting) sistemini tətbiq edir. ARC avtomatik olaraq obyektə olan referansların sayını izləyir və referanslar qalmadıqda yaddaşı azad edir.

Misal:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1: Person? = Person(name: "Ivan")
var person2 = person1 // referansların sayı artırılır
person1 = nil // obyekt hələ də yaşayır, çünki person2 ona istinad edir
person2 = nil // indi obyekt azad edilir

Beləliklə, ARC avtomatik işləyir, lakin ənənəvi çöp toplayıcıların xarakterik olduğu fasilələr və əlavə xərclər olmadan.