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.