Sobes.tech
Junior — Middle

Sinfni aniqlashda mavjud bo'lgan operatsiyalar yoki xususiyatlar, tuzilmadan farqli o'laroq, qanday?

sobes.tech AI

AIdan javob

Swift dasturlash tilida, sinflar strukturalardan farqli o'laroq, quyidagi xususiyatlarga ega:

  • Merosi: sinflar boshqa sinflardan meros olishi mumkin, bu esa hierarxiyalar yaratish va metodlarni qayta yozish imkonini beradi.
  • Deinitializers (deinit): sinflar, obyekt o'chirilganda resurslarni bo'shatish uchun deinitializersga ega bo'lishi mumkin.
  • Referent type: sinflar referens orqali o'tkaziladi, strukturalar esa qiymat orqali.
  • Xususiyat turlari: sinflar, obyektlarga referens bo'ladigan xususiyatlarga ega bo'lishi mumkin, bu esa xotira boshqaruviga ta'sir qiladi.
  • weak va unowned referenslarni ishlatish imkoniyati, kuchli referens sikllarini oldini olish uchun.

Deinitializator bilan sinf misoli:

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
    deinit {
        print("Person \(name) deinitialization jarayonida")
    }
}