Junior — Middle
Obsahuje Swift automatické spravování paměti, podobně jako GC v jiných jazycích?
sobes.tech AI
Odpověď od AI
V jazyce Swift se nepoužívá tradiční automatické sběrání odpadu (GC), jako v Javě nebo C#. Místo toho Swift používá systém automatického počítání odkazů (ARC — Automatic Reference Counting). ARC automaticky sleduje počet odkazů na objekt a uvolní paměť, když odkazů nezbývá.
Pří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 odkazů
person1 = nil // objekt stále žije, protože person2 na něj odkazuje
person2 = nil // nyní je objekt uvolněn
Tímto způsobem ARC funguje automaticky, ale bez pauz a dodatečných nákladů, které jsou typické pro tradiční sběrače odpadu.