2015-01-09 11 views
44

स्विफ्ट प्लेग्राउंड में खेलने के दौरान मैंने देखा कि Self, पूंजी "एस" के साथ, लोअरकेस self के साथ उपलब्ध है। क्या उनके बीच कोई अंतर है? यदि हां, तो इन दोनों के लिए उपयोग क्या हैं, खासकर Self के लिए?अपरकेस "सेल्फ" और लोअरकेस "सेल्फ" के बीच स्विफ्ट में भेद

+1

वहाँ प्रोटोकॉल एक्सटेंशन में '' self' के मूल्यों और Self' के बारे में काफी कुछ बारीकियों रहे हैं - मैं काफी विस्तार का एक सा में इस में जाने [इस क्यू एंड ए में] (http://stackoverflow.com/q/42037852/2976878)। – Hamish

उत्तर

47

Self प्रोटोकॉल के अंदर वर्तमान "चीज़" के प्रकार को संदर्भित करता है (जो भी प्रोटोकॉल के अनुरूप है)। इसके उपयोग के उदाहरण के लिए, Protocol func returning Self देखें।

स्विफ्ट प्रोग्रामिंग भाषा में Protocol Associated Type Declaration में पाया गया एकमात्र आधिकारिक दस्तावेज़ है। यह आश्चर्यजनक रूप से प्रोटोकॉल या नेस्टेड प्रकारों पर खंडों में प्रलेखित नहीं है।

+3

मेरे पास एक picky, pedantic दिन है। लेकिन घबराना नहीं! मैंने अपने दोस्तों को यह कहने के लिए समय निकाला है: तकनीकी रूप से प्रश्न का पूरी तरह उत्तर देने के लिए यह जवाब स्पष्ट रूप से कहना चाहिए कि 'स्वयं' मुख्य रूप से उद्देश्य-सी लोगों को लगता है कि यह क्या है। Structs, enums, आदि की चर्चा के साथ, शायद एक अनावश्यक चक्कर आ रहा है। – Tommy

+0

क्या किसी ने अभी तक स्वयं पर दस्तावेज़ पाया है? – uchuugaka

+0

भाषा संदर्भ में "प्रोटोकॉल एसोसिएटेड टाइप घोषणा" देखें: https://developer.apple.com/library/prerelease/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Declarations.html –

4

प्रोटोकॉल & एक्सटेंशन घोषणा उपयोग स्वयं किसी और स्वयं में

extension protocolName where Self: UIView 
{ 
    func someFunction() 
    { 
    self.layer.shadowColor = UIColor.red.cgColor 
    } 
} 
संबंधित मुद्दे