Sobes.tech
Junior — Middle

Jakie operacje lub właściwości są dostępne podczas definiowania klasy, których nie ma w strukturze?

sobes.tech AI

Odpowiedź od AI

W Swift klasy mają kilka cech, których nie mają struktury:

  • Dziedziczenie: klasy mogą dziedziczyć po innych klasach, co pozwala na tworzenie hierarchii i nadpisywanie metod.
  • Destruktory (deinit): klasy mogą mieć destruktory do zwalniania zasobów przy usuwaniu instancji.
  • Typ referencyjny: klasy są przekazywane przez referencję, a struktury przez wartość.
  • Typy właściwości: klasy mogą mieć właściwości będące referencjami do obiektów, co wpływa na zarządzanie pamięcią.
  • Możliwość używania odwołań weak i unowned do zapobiegania cyklom silnych odwołań.

Przykład klasy z destruktorem:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) jest deinitializowana")
    }
}