Junior
Agar o'zgaruvchi uchun setter o'rnatilsa, bu nima degani?
sobes.tech AI
AIdan javob
Setter (sozlovchi) yangi qiymatni o'zgaruvchiga yozishni nazorat qilish imkonini beradigan metoddir. Setterni belgilashda, standart qiymat tayyorlash mexanizmi, setter ichidagi kod bilan almashtiriladi. Bu quyidagilarni qilish imkonini beradi:
- Kiritilgan ma'lumotlarni tekshirish: Yangi qiymat belgilangan shartlarga mos keladimi yoki yo'qmi, uni o'zgaruvchiga yozishdan oldin tekshirish.
var age: Int = 0 { didSet { // DidSet (o'zgartirilgach) setter chaqiriladi if age < 0 { age = 0 // Manfiy qiymatga ruxsat bermaymiz } } } - Qo'shimcha harakatlarni bajarish: O'zgaruvchining qiymati o'zgarganda boshqa kodni ishga tushirish, masalan, foydalanuvchi interfeysini yangilash yoki boshqa qismlarni xabardor qilish.
var score: Int = 0 { didSet { // DidSet (o'zgartirilgach) print("Ball yangilandi: \(score)") // O'zgarishni log qilish updateUI() // UI ni yangilash } } func updateUI() { // Interfeysni yangilash uchun kod } - Boshqa xususiyatlarning qiymatlarini hisoblash: Bir xususiyat o'zgarishi, boshqa bir xususiyatning qiymatiga ta'sir qilishi mumkin.
var radius: Double = 0.0 { didSet { // DidSet area = Double.pi * radius * radius // Radius o'zgarganda maydonni qayta hisoblash } } var area: Double = 0.0 // radius ga bog'liq xususiyat
Swift'da setterlar, saqlangan (stored properties) va hisoblangan (computed properties) xususiyatlar uchun ishlatilishi mumkin. Saqlangan xususiyatlar uchun, odatda, xususiyat kuzatuvchilari (willSet va didSet) ishlatiladi, ular yangi qiymat tayinlanishidan oldin va keyin chaqiriladi. Hisoblangan xususiyatlar uchun, set setter qanday qiymat berilishi kerakligini belgilaydi.
var myProperty: String {
// Getter
get {
return "Qiymat: \(internalValue)"
}
// Setter
set(newValue) {
internalValue = newValue + " ishlov berilgan" // Tayyorlangan qiymatni o'zgartirish
}
}
private var internalValue: String = "" // Ichki saqlangan xususiyat