Sobes.tech
Junior — Middle

A Swift tem recolha automática de lixo, semelhante ao GC em outras linguagens?

sobes.tech IA

Resposta da IA

No Swift, não é utilizada a recolha automática de lixo (GC) no sentido clássico, como em Java ou C#. Em vez disso, o Swift aplica um sistema de contagem de referências (ARC — Automatic Reference Counting). O ARC rastreia automaticamente o número de referências a um objeto e liberta a memória quando não há mais referências.

Exemplo:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

var person1: Person? = Person(name: "Ivan")
var person2 = person1 // aumenta o contador de referências
person1 = nil // o objeto ainda vive, pois person2 refere-se a ele
person2 = nil // agora o objeto é libertado

Assim, o ARC funciona automaticamente, mas sem pausas ou custos adicionais, característicos dos recolhedores de lixo tradicionais.