Sobes.tech
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.