2017-05-18 6 views
11

कोटलिन में स्थिरांक बनाने की सिफारिश कैसे की जाती है? और नामकरण सम्मेलन क्या है? मुझे दस्तावेज में नहीं मिला है।कोटलिन में स्थिर - उन्हें बनाने के लिए एक अनुशंसित तरीका क्या है?

companion object { 
    //1 
    val MY_CONST = "something" 

    //2 
    const val MY_CONST = "something" 

    //3 
    val myConst = "something" 
} 

या ...?

+0

का उल्लेख कर सकते यदि आप जावा में 'सार्वजनिक स्थिर अंतिम' फ़ील्ड से संबंधित कुछ चाहते हैं, तो अपने साथी ऑब्जेक्ट में 'कॉन्स्ट वैल' का उपयोग करें। यदि आप 'निजी स्थिर अंतिम' फ़ील्ड और सार्वजनिक गेटर चाहते हैं, तो अपने साथी ऑब्जेक्ट में 'वैल' का उपयोग करें। – Michael

उत्तर

10

संकलन समय पर ज्ञात मान (और मेरी राय में) निरंतर के रूप में चिह्नित किया जा सकता है।

नामकरण सम्मेलनों को जावा वाले का पालन करना चाहिए और जावा कोड से उपयोग किए जाने पर उचित रूप से दिखाई देना चाहिए (यह किसी भी तरह से साथी वस्तुओं के साथ हासिल करना मुश्किल है, लेकिन वैसे भी)।

उचित लगातार घोषणाओं हैं:

const val MY_CONST = "something" 
const val MY_INT = 1 
+1

'नामकरण सम्मेलनों को जावा का पालन करना चाहिए' - क्यों? – Jodimoro

+1

अंतरिन चिकनी बनाने के लिए आमतौर पर अन्यथा निर्दिष्ट नहीं होने पर कोटलिन डिफ़ॉल्ट रूप से जावा सम्मेलनों का पालन करता है। – zsmb13

+4

इस तरह के दस्तावेज में @Jodimoro http://kotlinlang.org/docs/reference/coding-conventions.html – Neil

10

Kotlin में, आप तो आप इसे पसंद बना सकते हैं स्थानीय स्थिरांक कौन सी क्लास में साथ प्रयोग किया जा करने वाले हैं बनाना चाहते हैं तो नीचे दिए गए

val MY_CONSTANT = "Constants" 

और यदि आप जावा में सार्वजनिक स्थिर अंतिम जैसे कोटलिन में सार्वजनिक स्थिरता बनाना चाहते हैं, तो आप इसे अनुवर्ती बना सकते हैं।

companion object{ 

    const val MY_CONSTANT = "Constants" 

} 
0

स्थानीय स्थिरांक:

const val NAME = "name" 

वैश्विक स्थिरांक:

object MyConstants{ 
    val NAME = "name" 
    val ID = "_id" 
    var EMAIL = "email" 
} 

पहुँच MyConstants.NAME

0
class Myclass { 

companion object { 
     const val MYCONSTANT = 479 
} 

आपके पास दो विकल्प आप स्थिरांक कीवर्ड का उपयोग करें या उपयोग कर सकते हैं @ जेवीएमएफल्ड जो इसे जावा बनाता है स्थिर अंतिम स्थिरांक।

class Myclass { 

    companion object { 
      @JvmField val MYCONSTANT = 479 
    } 

आप तो @JvmField एनोटेशन का उपयोग करते हैं के बाद यह संकलित लगातार आप के लिए जिस तरह से आप जावा में यह कहेंगे में डाल दिया जाता है।
जैसे ही आप इसे जावा में कॉल करेंगे, संकलक आपके लिए उस जगह को प्रतिस्थापित करेगा जब आप साथी को कोड में स्थिर कहते हैं।

हालांकि, यदि आप कॉन्स कीवर्ड का उपयोग करते हैं तो निरंतर का मान रेखांकित हो जाता है। इनलाइन से मेरा मतलब है कि वास्तविक मान का उपयोग संकलन के बाद किया जाता है।

//so for @JvmField: 

Foo var1 = Constants.FOO; 

//and for const: 

Foo var1 = 479 
1

आप एक वर्ग, एक वस्तु या Kotlin में स्थिरांक घोषणा के लिए एक साथी वस्तु की जरूरत नहीं है:

इसलिए यहाँ संक्षेप में प्रस्तुत करने के लिए क्या संकलक आप के लिए क्या करेंगे है। आप बस सभी स्थिरांक धारण करने वाली फ़ाइल घोषित कर सकते हैं (उदाहरण के लिए Constants.kt) और सीधे फ़ाइल के अंदर स्थिरांक घोषित करें। संकलन समय पर ज्ञात स्थिरांक const के साथ चिह्नित किए जाने चाहिए।

तो, इस मामले में, यह होना चाहिए:

const val MY_CONST = "something"

और फिर आप का उपयोग कर लगातार आयात कर सकते हैं:

import package_name.MY_CONST

आप इस link

संबंधित मुद्दे

 संबंधित मुद्दे