Sobes.tech
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) жоголуп жатат")
    }
}