Ինչպես օգտագործել 'backing fields' Kotlin-ում?
sobes.tech AI
Պատասխան AI-ից
Աջակցող դաշտեր ('backing fields') ավտոմատորեն ստեղծվում են կոմպիլյատորով, երբ օգտագործվում են ստանդարտ getter/setter-ներ և չեն պահանջում բացահայտ հայտարարում: Դրանք օգտագործվում են հատկության արժեքը պահելու համար:
Բացահայտ օգտագործումը 'backing fields'-ի անհրաժեշտություն է հազվադեպ, օրինակ, երբ ցանկանում եք անհատականացնել getter կամ setter և միաժամանակ հղում կատարել սեփական հատկության արժեքին, այլ ոչ թե կանչել getter-ը, ինչը կարող է հանգեցնել ռեկուրսիային:
Ճշգրիտ մուտք գործելու համար 'backing field'-ին getter կամ setter-ի ներսում օգտագործվում է field նույնականացուցիչը:
class MyClass {
var counter = 0 // Կոմպիլյատորը կստեղծի backing field այս հատկության համար
set(value) {
// Շրջանառության պայմանը ստուգելուց առաջ
if (value >= 0) {
// Բացահայտ մուտք backing field-ին
field = value
}
}
}
'Backing field'-ը չի ստեղծվում հատկության համար, եթե այն չի օգտագործվում (օրինակ, աբստրակտ հատկությունների կամ ինտերֆեյսի հատկությունների համար), կամ եթե getter և setter-ը լրիվ անհատականացված են և չեն օգտագործում կոմպիլյատորով ստեղծված 'backing field'-ը:
Օրինակ, որտեղ 'backing field'-ը չի ստեղծվում:
interface MyInterface {
val abstractProperty: String // Չի պարունակում backing field
}
class AnotherClass {
val computedProperty: Int
get() = (1 + 2) // Getter-ը չի օգտագործում backing field, չկա backing field
}