Sobes.tech
Junior — Middle

Kokios operacijos ar savybės yra prieinamos apibrėžiant klasę, kurios nėra struktūroje?

sobes.tech AI

Atsakymas iš AI

Swift'e klasės turi keletą savybių, kurių neturi struktūros:

  • Paveldėjimas: klasės gali paveldėti iš kitų klasių, leidžiant kurti hierarchijas ir perrašyti metodus.
  • Deinitializers (deinit): klasės gali turėti deinitializers, kurie atlaisvina išteklius, kai šalinama instancija.
  • Nuorodos tipas: klasės perduodamos nuoroda, o struktūros - reikšme.
  • Savybių tipai: klasės gali turėti savybes, kurios yra nuorodos į objektus, tai veikia atminties valdymą.
  • Galimybė naudoti weak ir unowned nuorodas siekiant išvengti stiprių nuorodų ciklų.

Pavyzdys su deinitializatoriumi:

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