Sobes.tech
Junior — Middle

Jaké operace nebo vlastnosti jsou dostupné při definování třídy, které nejsou u struktury?

sobes.tech AI

Odpověď od AI

Ve Swiftu mají třídy několik vlastností, které struktury nemají:

  • Dědičnost: třídy mohou dědit od jiných tříd, což umožňuje vytváření hierarchií a přepisování metod.
  • Deinitializátory (deinit): třídy mohou mít deinitializátory pro uvolnění zdrojů při odstranění instance.
  • Typ odkazu: třídy jsou předávány odkazem, zatímco struktury hodnotou.
  • Typy vlastností: třídy mohou mít vlastnosti, které jsou odkazy na objekty, což ovlivňuje správu paměti.
  • Možnost použití weak a unowned odkazů k prevenci cyklů silných odkazů.

Příklad třídy s deinitializátorem:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) je deinitializován")
    }
}