Junior — Middle
Swiftda boshqa tillardagi GC ga o'xshash avtomatik xotira tozalash mavjudmi?
sobes.tech AI
AIdan javob
Swiftda klassik tushunishda avtomatik axlat yig'ish (GC) ishlatilmaydi, Java yoki C# dagi kabi. O'rniga, Swift avtomatik referenslar hisoblash tizimini (ARC — Automatic Reference Counting) qo'llaydi. ARC avtomatik ravishda ob'ektga bo'lgan referenslar sonini kuzatadi va referenslar qolmay qolganida xotirani bo'shatadi.
Misol:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Ivan")
var person2 = person1 // referenslar soni oshadi
person1 = nil // ob'ekt hali ham mavjud, chunki person2 unga murojaat qilmoqda
person2 = nil // endi ob'ekt bo'shatiladi
Shu tarzda, ARC avtomatik ishlaydi, ammo an'anaviy axlat yig'uvchilarga xos bo'lgan pauzalar va qo'shimcha xarajatlar bo'lmaydi.