Junior — Middle
Millised toimingud või omadused on saadaval klassi määratlemisel, mida struktuuris ei ole?
sobes.tech AI
Vastus AI-lt
Swiftis on klassidel mitmeid omadusi, mida struktuurid ei oma:
- Pärimine: klassid võivad pärida teistelt klassidelt, võimaldades luua hierarhiaid ja meetodeid üle kirjutada.
- Deinitializers (deinit): klassidel võivad olla deinitializers, mis vabastavad ressursid, kui eksemplar kustutatakse.
- Viidatüüp: klassid edastatakse viitega, struktuurid väärtusena.
- Omaduste tüübid: klassidel võivad olla omadused, mis on viited objektidele, mis mõjutab mälu haldamist.
- Võimalus kasutada
weakjaunownedviiteid: tugevate viidete tsüklite vältimiseks.
Näide klassist deinitializeriga:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) deinitialiseerub")
}
}