तो आप स्विफ्ट में जेनेरिक क्लास स्थिरांक को कैसे परिभाषित करते हैं?तेजी से एक सामान्य वर्ग में स्थिर स्थिरता को परिभाषित करने के लिए कैसे?
समस्याएक "सामान्य" वर्ग के लिए
आप उन्हें इस तरह परिभाषित कर सकते हैं:
class C {
static let k = 1
}
let a = C.k // 1
लेकिन अगर आप एक सामान्य वर्ग पर भी ऐसा ही:
class C<T> {
static let k = 1
}
आप संकलन पर निम्न त्रुटि प्राप्त करें:
,210स्टेटिक संग्रहीत गुण अभी तक सामान्य प्रकार
में समर्थित नहीं तो कैसे इस समस्या के समाधान के लिए?
मेरे वर्तमान समाधान
अभी, मैं इस को हल करने के struct
उपयोग कर रहा हूँ:
struct CConstant {
static let K = 1
}
यह सामान्य वर्ग के दायरे में परिभाषित नहीं है, लेकिन यह मेरे लिए काम करता है। क्या आपके पास बेहतर समाधान है?
-
पुनश्च: यह मेरा पहला सवाल यहाँ है, इसलिए मदद कृपया मुझे इस प्रश्न में सुधार अगर आपको लगता है यह आवश्यक है =)
इसका उत्तर देने के लिए धन्यवाद! आपका सुझाव मेरे वर्तमान समाधान की एक ही दिशा में प्रतीत होता है। मुझे सिर्फ संदर्भ के आधार पर एक्सेसर्स निर्दिष्ट करना होगा। क्या आपको पता है कि क्यों 'स्टेटिक संग्रहित गुण अभी तक जेनेरिक प्रकारों में समर्थित नहीं हैं'? – ghashi
मुझे लगता है कि वे अभी तक समर्थित नहीं हैं क्योंकि आप सामान्य प्रकार का उपयोग अपने प्रकार के पैरामीटर निर्दिष्ट किए बिना नहीं कर सकते हैं। और यदि आप स्थिर संपत्ति का उपयोग करना चाहते हैं तो 'SomeClass .someConstant' बदसूरत लगेगा। इसे टाइप पैरामीटर निर्दिष्ट किए बिना काम करने के लिए इसे कंपाइलर में कार्यान्वित करने की आवश्यकता है और मुझे लगता है कि यह स्विफ्ट टीम के लिए शीर्ष प्राथमिकता कार्य नहीं है। –
mixel