Sobes.tech
Junior — Middle

Quais operações ou propriedades estão disponíveis ao definir uma classe que não estão na estrutura?

sobes.tech IA

Resposta da IA

Em Swift, as classes possuem várias características que as estruturas não têm:

  • Herança: as classes podem herdar de outras classes, permitindo criar hierarquias e sobrescrever métodos.
  • Desinicializadores (deinit): as classes podem ter desinicializadores para liberar recursos ao eliminar uma instância.
  • Tipo de referência: as classes são passadas por referência, enquanto as estruturas por valor.
  • Tipos de propriedades: as classes podem ter propriedades que são referências a objetos, o que afeta a gestão de memória.
  • Possibilidade de usar referências weak e unowned para evitar ciclos de referências fortes.

Exemplo de uma classe com um desinicializador:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) está sendo desinicializada")
    }
}