गेटर्स और सेटर्स कोटलिन में स्वतः उत्पन्न होते हैं। यदि आप लिखना:
val isEmpty: Boolean
यह निम्न जावा कोड के बराबर है:
private final Boolean isEmpty;
public Boolean isEmpty() {
return isEmpty;
}
आपके मामले में निजी उपयोग संशोधक निरर्थक है - isEmpty डिफ़ॉल्ट रूप से निजी है और एक गेटर से केवल पहुँचा जा सकता है । जब आप अपनी ऑब्जेक्ट की कोशिश करने की कोशिश करते हैं तो संपत्ति संपत्ति आप वास्तविक तरीके से विधि प्राप्त करते हैं। नीचे दिए गए दो कोड नमूने के बराबर हैं: - यह है
var someProperty: String = "defaultValue"
और
var someProperty: String = "defaultValue"
get() = field
set(value) { field = value }
इसके अलावा, मैं कहना चाहता हूँ कि एक गेटर में this
अपनी संपत्ति नहीं है Kotlin में getters/setters की अधिक समझ के लिए वर्ग उदाहरण। यदि आप एक गेटर में फ़ील्ड का मान के लिए उपयोग करना चाहते हैं या सेटर से आपको उसके लिए आरक्षित शब्द field
उपयोग कर सकते हैं:
val isEmpty: Boolean
get() = field
आप केवल सार्वजनिक उपयोग में प्राप्त विधि करना चाहते हैं - तो आप इस कोड लिख सकते हैं :
var isEmpty: Boolean
private set
निजी संशोधक सेट एक्सेसर पास आप केवल अपने ऑब्जेक्ट के अंदर तरीकों में यह मान सेट कर सकते हैं की वजह से।
'आपके मामले में निजी उपयोग संशोधक कैसे redundant' है? कोटलिन डॉक्टर का कहना है कि डिफ़ॉल्ट संशोधक सार्वजनिक है। https://kotlinlang.org/docs/reference/visibility-modifiers.html –
@Nothing हाँ यह सार्वजनिक क्षेत्र की तरह लगता है, लेकिन हुड के नीचे आप गेटर विधि कॉल – Cortwave
'वैल isEmpty: Boolean' isEmpty के रूप में संकलित नहीं होगा अभी तक नहीं है शुरू किया, है ना? बसलिन सीखना शुरू कर दिया। साथ ही, 'get() = field' के साथ क्या हो रहा है? –