Sobes.tech
Middle

როგორ გამოვიყენოთ 'backing fields' Kotlin-ში?

sobes.tech AI

პასუხი AI-სგან

دعم ساحې ('backing fields') په اوتوماتيک ډول د کمپایلر لخوا تولیدیږي کله چې د معیاري getters/setters کارول کیږي او څرګند اعلان ته اړتیا نلري. دا د ملکیت ارزښت ذخیره کولو لپاره کارول کیږي.

د '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' د ملکیت لپاره نه تولیدیږي که چیرې هیڅ ملکیت یې ونه کاروي (لکه، د انتزاعي ملکیتونو یا د انٹرفیس ملکیتونو لپاره)، یا که getters او setters بشپړ شخصي شوي وي او د کمپایلر لخوا تولید شوی 'backing field' ونه کاروي.

مثال چې 'backing field' نه تولیدیږي:

interface MyInterface {
    val abstractProperty: String // هیڅ backing field نشته
}

class AnotherClass {
    val computedProperty: Int
        get() = (1 + 2) // Getter backing field نه کاروي، هیڅ backing field نشته
}