Sobes.tech
Junior — Middle

Ce operații sau proprietăți sunt disponibile la definirea unei clase, care nu sunt în structură?

sobes.tech AI

Răspuns de la AI

În Swift, clasele au mai multe caracteristici pe care structurile nu le au:

  • Moștenire: clasele pot moșteni de la alte clase, permițând crearea de ierarhii și suprascrierea metodelor.
  • Deinitializers (deinit): clasele pot avea deinitializers pentru a elibera resursele atunci când o instanță este eliminată.
  • Tip de referință: clasele sunt transmise prin referință, în timp ce structurile prin valoare.
  • Tipuri de proprietăți: clasele pot avea proprietăți care sunt referințe la obiecte, ceea ce influențează gestionarea memoriei.
  • Posibilitatea de a folosi referințe weak și unowned pentru a preveni ciclurile de referință puternice.

Exemplu de clasă cu deinitializer:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) este fiind deinitializată")
    }
}