Junior
Ի՞նչ է նշանակում, եթե փոփոխականի համար սահմանել եք setter։
sobes.tech AI
Պատասխան AI-ից
Setter (setter) - դա մեթոդ է, որը թույլ է տալիս վերահսկել նոր արժեքի գրանցումը փոփոխականում: Երբ սահմանում եք setter-ը, ստանդարտ արժեքների նշանակման մեխանիզմը փոխարինվում է setter-ի կոդով: Սա հնարավորություն է տալիս.
- Ներմուծվող տվյալների վավերացում: Ստուգել, արդյոք նոր արժեքը համապատասխանում է նշված պայմաններին, նախքան այն նշանակել փոփոխականին:
var age: Int = 0 { didSet { // Setter (didSet) կանչվում է արժեքը սահմանելուց հետո if age < 0 { age = 0 // Չթույլատրել բացասական արժեք նշանակել } } } - Լրացուցիչ գործողությունների իրականացում: Կատարել այլ կոդ փոփոխականի արժեքը փոխելու ժամանակ, օրինակ՝ թարմացնել օգտագործողի ինտերֆեյսը կամ տեղեկացնել այլ մասեր ծրագրի:
var score: Int = 0 { didSet { // Setter (didSet) print("Score updated to \(score)") // Լոգավորում փոփոխությունը updateUI() // Թարմացնել UI-ն } } func updateUI() { // Կոդ ինտերֆեյսի թարմացման համար } - Իմացեք այլ հատկությունների արժեքները: Մի հատկության փոփոխությունը կարող է ազդել մյուսի վրա:
var radius: Double = 0.0 { didSet { // Setter (didSet) area = Double.pi * radius * radius // Հաշվարկել մակերեսը радиուսի փոփոխության ժամանակ } } var area: Double = 0.0 // Աշխատանք, որը կախված է radius-ից
Swift-ում setter-ները կարող են օգտագործվել պահվող (stored properties) և հաշվարկվող հատկությունների (computed properties) համար: Պահվող հատկությունների համար հաճախ օգտագործվում են հատկությունների դիտարկիչներ (willSet և didSet), որոնք կանչվում են նոր արժեք սահմանելուց առաջ և հետո համապատասխանաբար: Հաշվարկվող հատկությունների setter-ը (set) որոշում է, թե ինչպես պետք է նշանակվի արժեքը:
var myProperty: String {
// Գ getter
get {
return "Value is: \(internalValue)"
}
// Գ setter
set(newValue) {
internalValue = newValue + " processed" // Մոդիֆիկացնել նշանակվող արժեքը
}
}
private var internalValue: String = "" // Արտաքին պահվող հատկություն