मुझे var और कीवर्ड {0 सेट करें} के उपयोग के बारे में स्विफ्ट में प्रोटोकॉल के बारे में संदेह है।स्विफ्ट में प्रोटोकॉल में क्यों उपयोग नहीं कर सकता?
Apple documentation से:
एक प्रोटोकॉल, प्राप्य और settable है कि संपत्ति आवश्यकता एक निरंतर संग्रहीत संपत्ति या केवल पढ़ने के लिए परिकलित प्रॉपर्टी द्वारा पूरा नहीं किया जा सकता एक संपत्ति की आवश्यकता है। यदि प्रोटोकॉल को केवल संपत्ति प्राप्त करने योग्य होने की आवश्यकता है, तो आवश्यकता किसी भी प्रकार की संपत्ति से संतुष्ट हो सकती है, और यह पर यह भी सेट करने योग्य है कि यह आपके कोड के लिए उपयोगी है।
संपत्ति आवश्यकताओं को हमेशा परिवर्तनीय गुणों के रूप में घोषित किया जाता है, विभिन्न कीवर्ड के साथ उपसर्ग। Gettable और settable गुण उनके प्रकार की घोषणा के बाद {get set} लिखकर इंगित किए गए हैं, और gettable गुणों को {get} लिखकर इंगित किया जाता है।
मुझे समझ में नहीं आ रहा है कि मैं का उपयोग क्यों नहीं कर सकता। var केवल के साथ प्रोटोकॉल में प्राप्त करें नहीं है?
कुछ इस तरह:
protocol someProtocol
{
var someProperty: String { get }
}
यह नहीं होगा बस:
protocol someProtocol
{
let someProperty: String
}
मैं कुछ याद कर रहा हूँ?
एक गेटेबल संपत्ति अभी भी मूल्यों को बदल सकती है - प्रोटोकॉल कार्यान्वयनकर्ता हमेशा अलग-अलग मान वापस कर सकता है, प्रोटोकॉल कॉलर बस उन्हें सेट नहीं कर सकता है। दूसरी ओर, एक निरंतर परिभाषित करता है। इसे केवल एक बार सेट किया जा सकता है और इसका कोई अलग मूल्य नहीं हो सकता है। – pvg
@pvg, आपने इसे उत्तर के रूप में क्यों पोस्ट नहीं किया? – courteouselk
yup, यह सही जवाब है। – sunshinejr