Junior — Middle
Има ли автоматично събиране на боклука в Swift, подобно на GC в други езици?
sobes.tech AI
Отговор от AI
В Swift не се използва автоматично събиране на отпадъци (GC) в класическия смисъл, както в Java или C#. Вместо това, Swift прилага система за автоматично броене на препратки (ARC — Automatic Reference Counting). ARC автоматично следи броя на препратките към обект и освобождава паметта, когато няма повече препратки.
Пример:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Ivan")
var person2 = person1 // увеличава броя на препратките
person1 = nil // обектът все още съществува, тъй като person2 се отнася към него
person2 = nil // сега обектът се освобождава
По този начин ARC работи автоматично, но без паузи и допълнителни разходи, характерни за традиционните събирачи на отпадъци.