Sobes.tech
Junior — Middle

Оё шумо метавонед хосиятҳое, ки дар забони Swift дастрасанд, номбар кунед ва шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Дар Swift хусусиятҳо тағйирёбандаҳо ё константҳо мебошанд, ки бо синфҳо, сохторҳо ё enumerationҳо алоқаманданд ва маълумотро нигоҳ медоранд ё арзишҳоро ҳисоб мекунанд.

Намудҳои асосии хусусиятҳо:

  • Хусусиятҳои захирашуда (Stored Properties) — арзиши доимӣ ё тағйирёбандаро нигоҳ медоранд. Масалан:
struct Шахс {
    var ном: String  // хусусияти тағйирёбанда
    let соли таваллуд: Int  // хусусияти доимӣ
}
  • Хусусиятҳои ҳисобшуда (Computed Properties) — арзишро мустақиман нигоҳ намедоранд, балки ҳангоми дастрасӣ ҳисоб мекунанд. Мутобиқати getter ва setter метавонанд дошта бошанд:
struct Маҳдуд {
    var паҳнӣ: Double
    var баландӣ: Double
    var майдони: Double {
        return паҳнӣ * баландӣ
    }
}
  • Назораткунандагони хусусият (Property Observers) — имкон медиҳанд, ки ба тағйироти арзиши хусусияти захирашуда бо истифода аз willSet ва didSet вокуниш нишон диҳем:
var хол: Int = 0 {
    willSet {
        print("Бояд ба \(newValue) тағйир ёбад")
    }
    didSet {
        print("Аз \(oldValue) ба \(хол) тағйир ёфт")
    }
}
  • Хусусиятҳои намуди (Type Properties) — ба худи намуд, на ба намуна, тааллуқ доранд ва бо static ё class эълон карда мешаванд:
struct Математика {
    static let pi = 3.14159
}

Бо ин роҳҳо, хусусиятҳо дар Swift имкон медиҳанд, ки маълумотҳоро қулай нигоҳ дошта, ҳисоб кунанд ва тағйиротҳои онҳоро пайгирӣ кунанд.