Junior — Middle
Kuras operācijas vai īpašības ir pieejamas, definējot klasi, kas nav struktūrā?
sobes.tech AI
Atbilde no AI
Swift valodā klases ir vairākas īpašības, kuras nav raksturīgas struktūrām:
- Mantošana: klases var mantot no citām klasēm, kas ļauj veidot hierarhijas un pārrakstīt metodes.
- Deinitializers (deinit): klases var saturēt deinitializers, kas atbrīvo resursus, kad instances tiek dzēstas.
- Atsauces tips: klases tiek nodotas ar atsauci, bet struktūras ar vērtību.
- Īpašību tipi: klases var saturēt īpašības, kas ir atsauces uz objektiem, kas ietekmē atmiņas pārvaldību.
- Iespēja izmantot
weakununownedatsauces, lai novērstu stipro atsauču ciklus.
Piemērs ar deinitializer:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) tiek deinitializēts")
}
}