एक्सटेंशन का उपयोग करके मौजूदा स्विफ्ट ऑब्जेक्ट प्रकारों में एक्सटेंशन जोड़ना संभव है, जैसा कि भाषा विनिर्देश में वर्णित है ।
परिणामस्वरूप, एक्सटेंशन बनाना संभव है जैसे:
extension String {
var utf8data:NSData {
return self.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)!
}
}
हालाँकि, ऐसी एक्सटेंशन वाली स्विफ्ट स्रोत फ़ाइलों के लिए सबसे अच्छा नामकरण अभ्यास क्या है?
पूर्व में, कन्वेंशन का extendedtype+categoryname.mउद्देश्य ऑब्जेक्टिव-सी टाइप के लिए उपयोग करना था जैसा कि ऑब्जेक्टिव-सी गाइड में चर्चा की गई थी । लेकिन स्विफ्ट उदाहरण में श्रेणी का नाम नहीं है, और इसे कॉल करना String.swiftउचित नहीं लगता है।
तो सवाल यह है: उपरोक्त Stringविस्तार को देखते हुए , स्विफ्ट स्रोत फ़ाइल को क्या कहा जाना चाहिए?
ClassName+ExtensionNameप्रारूप का पालन करती हैं , और जो मुझे बहुत सारे लोग अभी भी उपयोग नहीं करते हैं। इसके अलावा, मुझे लगता है कि सिर्फ कक्षाओं और एक्सटेंशन को एक साथ परिभाषित करने या फाइल को एक बेहतर नाम देने FooAbleTypesऔर एग्रीगेट में उदाहरणों को परिभाषित करने के बदले में क्लूनी मिल रहा है ।
Extensions.swift। इस तरह, आप उन्हें ट्रैक नहीं करेंगे और नए लोगों को कोडबेस तुरंत उन्हें नोटिस करेंगे। और मैं फ़ाइल वे की जरूरत कर रहे हैं करने के लिए एक बंद एक्सटेंशन निजी रखना चाहते हैं।