कोटलिन: पब्लिक को प्राइवेट सेट वर मिलता है


125

कोटलिन में एक वैर को परिभाषित करने का सही तरीका क्या है जिसमें एक सार्वजनिक गेटटर और निजी (केवल आंतरिक रूप से परिवर्तनीय) सेटर है?

जवाबों:


193
var setterVisibility: String = "abc" // Initializer required, not a nullable type
    private set // the setter is private and has the default implementation

देखें: गुण गेट्टर और सेटर


13
ध्यान दें कि private setएक नई लाइन पर होना चाहिए।
जैस्पर ब्लूज

29
... या एक ही लाइन पर, एक अर्धविराम के बाद:var abc: String = ""; private set
बोरिस बी।

4
हालांकि प्राथमिक कंस्ट्रक्टर क्षेत्र के साथ क्या करना है, इसके लिए मैं नुकसान में हूं।
Androidguy

2
@ user3175580 यह संभव नहीं है। प्राथमिक कंस्ट्रक्टर के अंदर एक स्थानीय फ़ील्ड का उपयोग करें और फिर "वर्ग फू (_bar: स्ट्रिंग) {var बार: स्ट्रिंग = _bar} जैसी संपत्ति का मान असाइन करें
D3xter

3
@JasperBlues ... अन्यथा, आपको पहले अर्धविराम जोड़ने की आवश्यकता है private set
मूसा एपिको

7

आप निम्नलिखित दृष्टिकोण का उपयोग करके इसे आसानी से कर सकते हैं :

var atmosphericPressure: Double = 760.0
    get() = field
    private set(value) { 
        field = value 
    }

इस पोस्ट को मीडियम: प्रॉपर्टी, गेट्टर एंड सेटर इन कोटलिन पर देखें

उम्मीद है की यह मदद करेगा।


2

var name : String = "Peter"
    private set

डिफ़ॉल्ट रूप से सभी गुण और फ़ंक्शन कोटलिन में सार्वजनिक हैं। इसलिए, सेटर को स्पष्ट रूप से निजी घोषित किया जाना चाहिए, जबकि गेट्टर डिफ़ॉल्ट रूप से सार्वजनिक है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.