Junior — Middle
Má Swift automatické zberať odpadkov, podobne ako GC v iných jazykoch?
sobes.tech AI
Odpoveď od AI
V jazyku Swift sa nepoužíva tradičné automatické zberače odpadu (GC), ako v Jave alebo C#. Namiesto toho Swift používa systém automatického počítania odkazov (ARC — Automatic Reference Counting). ARC automaticky sleduje počet odkazov na objekt a uvoľní pamäť, keď odkazov niet.
Príklad:
class Person {
var name: String
init(name: String) {
self.name = name
}
}
var person1: Person? = Person(name: "Ivan")
var person2 = person1 // zvyšuje počet odkazov
person1 = nil // objekt stále žije, pretože person2 naň odkazuje
person2 = nil // teraz je objekt uvoľnený
Takto ARC funguje automaticky, ale bez prestojov a dodatočných nákladov, ktoré sú typické pre tradičných zberačov odpadu.