2016-06-28 8 views
6

में एक वर्ग के बाहर निजी स्थिरांक की घोषणा जब निजी स्थिरांक स्विफ्ट में यह एक वर्ग के भीतर उन्हें घोषित करने के लिए संभव है बनाने,स्विफ्ट

final class SomeClass: NSObject { 

    private let someFloat:CGFloat = 12 
} 

के साथ ही एक वर्ग के बाहर।

private let someFloat:CGFloat = 12 

final class SomeClass: NSObject { } 

जब वर्ग दायरे के बाहर फ़ाइल में लगातार बनाया जाता है। वहाँ एक दूसरे के ऊपर विधि का उपयोग करने के लिए किसी भी अन्य मतभेद हैं है, और किसी को भी सर्वोत्तम प्रथाओं पर राय है?

+0

पहले एक में, आप, उदाहरण के प्रति एक निजी निरंतर घोषित कर रहे हैं, हालांकि मुझे लगता है कि संकलक पूरी कक्षा के लिए 1 निरंतर करने के लिए अनुकूलित कर सकते हैं। दूसरी विधि ओबीजेसी में यह कैसे किया जाता है। दोनों मेरे बराबर हैं। –

+0

@CodeDifferent के अतिरिक्त, आपका दूसरा विकल्प उस फ़ाइल के भीतर बनाए गए सभी वर्गों के माध्यम से उपलब्ध होगा। – Santosh

+0

संपत्तियों को ओवरराइड करने पर भी विचार करें। पिछले पैराग्राफ को छोड़कर – Sulthan

उत्तर

1

वे अलग तरीके से एक्सेस कर रहे हैं।

पहले मामले में, someFloatSomeClass के दायरे में है। इसे SomeClass.someFloat के साथ एक्सेस किया गया है।

दूसरे मामले में, someFloat मॉड्यूल दायरे में है। इसे केवल someFloat के साथ एक्सेस किया गया है।

पहली विधि बेहतर है। यह मॉड्यूल का नाम अंतरिक्ष में पहचानकर्ता को खोजने के लिए आम तौर पर कठिन है, क्योंकि वे आसानी से किया जा सकता है मानक पुस्तकालय या नींव/कोको ढांचे में सभी पहचानकर्ता द्वारा दबा दिया।

+0

सही। कोई वैश्विक नामस्थान नहीं है। केवल मॉड्यूल नेमस्पेस है। इसके अलावा एक निजी चर कुछ भी प्रदूषित नहीं होगा। – Sulthan

+0

@ सुल्तान आप सही हैं, मैंने उस गलती में संशोधन किया है। मैंने यह भी स्पष्ट किया कि नेमस्पेस प्रदूषण क्यों मायने रखता है। – Alexander