Junior — Middle
Ce operații sau proprietăți sunt disponibile la definirea unei clase, care nu sunt în structură?
sobes.tech AI
Răspuns de la AI
În Swift, clasele au mai multe caracteristici pe care structurile nu le au:
- Moștenire: clasele pot moșteni de la alte clase, permițând crearea de ierarhii și suprascrierea metodelor.
- Deinitializers (deinit): clasele pot avea deinitializers pentru a elibera resursele atunci când o instanță este eliminată.
- Tip de referință: clasele sunt transmise prin referință, în timp ce structurile prin valoare.
- Tipuri de proprietăți: clasele pot avea proprietăți care sunt referințe la obiecte, ceea ce influențează gestionarea memoriei.
- Posibilitatea de a folosi referințe
weakșiunownedpentru a preveni ciclurile de referință puternice.
Exemplu de clasă cu deinitializer:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) este fiind deinitializată")
}
}