Sobes.tech
Junior — Middle

Aké operácie alebo vlastnosti sú dostupné pri definovaní triedy, ktoré nie sú v štruktúre?

sobes.tech AI

Odpoveď od AI

V Swift-e majú triedy niekoľko vlastností, ktoré štruktúry nemajú:

  • Dedičnosť: triedy môžu dediť od iných tried, čo umožňuje vytváranie hierarchií a prepísanie metód.
  • Deinitializéry (deinit): triedy môžu mať deinitializéry na uvoľnenie zdrojov pri odstránení inštancie.
  • Typ referencie: triedy sa odovzdávajú odkazom, zatiaľ čo štruktúry hodnotami.
  • Typy vlastností: triedy môžu mať vlastnosti, ktoré sú odkazy na objekty, čo ovplyvňuje správu pamäti.
  • Možnosť použitia weak a unowned odkazov na prevenciu cyklov silných odkazov.

Príklad triedy s deinitializérom:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) je deinitializovaný")
    }
}