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
weakirunownednuorodas 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")
}
}