Junior — Middle
Класс аныктоо учун кандай операциялар же мүнөздөмөлөр бар жана структурада жок?
sobes.tech AI
AIден жооп
Swiftте класстарда структураларга караганда бир нече өзгөчөлүктөр бар:
- Мурас: класстар башка класстардан мурас алса болот, бул иерархияларды түзүүгө жана методдорду кайра жазууга мүмкүндүк берет.
- Deinitializerлер (deinit): класстарда деинициализаторлор болушу мүмкүн, алар объект жоголгондо ресурстарды бошотуу үчүн.
- Көрсөтүү түрү: класстар шилтемелер аркылуу өткөрүлөт, ал эми структуралар маанилер аркылуу.
- Мөлүктөрдүн түрлөрү: класстарда объекттерге шилтемелер болгон өзгөчөлүктөр болушу мүмкүн, бул эс тутумду башкарууга таасир этет.
weakжанаunownedшилтемелерди колдонуу мүмкүнчүлүгү: күчтүү шилтемелер циклин алдын алуу үчүн.
Деинициализатору бар класстын мисалы:
class Person {
var name: String
init(name: String) {
self.name = name
}
deinit {
print("Person \(name) жоголуп жатат")
}
}