Junior — Middle
Milyen műveletek vagy tulajdonságok érhetők el osztály definiálásakor, amelyek nem szerepelnek a struktúrában?
sobes.tech MI
Válasz az MI-től
Swiftben a osztályok több olyan jellemzővel rendelkeznek, amelyek nem találhatók meg a szerkezetekben:
- Öröklődés: az osztályok örökölhetnek más osztályoktól, lehetővé téve hierarchiák létrehozását és módszerek felülírását.
- Deinitializerek (deinit): az osztályok rendelkezhetnek deinitializerekkel az erőforrások felszabadítására, amikor egy példányt törölnek.
- Referencia típus: az osztályokat referencia szerint adják át, míg a szerkezeteket érték szerint.
- Tulajdonság típusok: az osztályoknak lehetnek olyan tulajdonságaik, amelyek objektumokra mutató referenciák, ez befolyásolja a memória kezelését.
weakésunownedreferenciák használata a erős referenciaciklusok megelőzése érdekében.
Példa egy osztályra deinitializerrel:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) deinitializálódik")
}
}