निम्नलिखित खेल का मैदान पर विचार करें। जेनेरिक फ़ंक्शन "मेकर" सही प्रारंभकर्ता को कॉल करने के लिए मुझे बी-क्लास (बी कक्षा परिभाषा में टिप्पणी को हटाकर परीक्षण) में स्ट्रिंगइनेबल को स्पष्ट रूप से कार्यान्वित करना होगा?स्विफ्ट प्रोटोकॉल विरासत और जेनेरिक कार्यों
8
A
उत्तर
2
यह एक सरल कारण के लिए एक संकलक बग की तरह बदबू आ रही है: makerB
B
प्रकार का एक चर रहा है, लेकिन यह A
का एक उदाहरण दिया गया है। यह संभव नहीं होना चाहिए, और वास्तव में यदि आप प्रिंट करने का प्रयास करते हैं, और another_stored
makerB
चर की संपत्ति another_stored
संपत्ति तक पहुंचने के लिए, आमतौर पर एक रनटाइम अपवाद उठाया जाता है, और मैं और कुछ भी उम्मीद नहीं करता।
क्योंकि अगर B
A
का एक उपवर्ग है, A
का एक उदाहरण B
प्रकार का एक चर करने के लिए (जबकि विपरीत संभव है) नहीं सौंपा जा सकता है यही कारण है कि।
B
प्रकार का एक चर के लिए A
प्रकार का एक चर नियत हालांकि संभव है, लेकिन केवल इन परिस्थितियों में:
B
कोA
से एक स्पष्ट खिन्न किया जाता है (संकलक अन्यथा त्रुटि चाहिए)- उदाहरण
A
चर द्वारा संदर्भित वास्तव मेंB
का एक उदाहरण है (एक क्रम अपवाद अन्यथा उठाया जाना चाहिए)
ध्यान दें कि कंपाइलर सही प्रारंभकर्ता को कॉल करने में असफल रहा है - इसे किसी अन्य वर्ग
संबंधित मुद्दे
- 1. स्विफ्ट (प्रोटोकॉल और जेनेरिक) में सामान्य प्रकार की फैक्टरी
- 2. विरासत और जेनेरिक
- 3. आंतरिक कार्यों और गुणों के साथ स्विफ्ट पब्लिक प्रोटोकॉल
- 4. जेनेरिक विधि ओवरराइड स्विफ्ट
- 5. स्विफ्ट downcasting और प्रोटोकॉल चर
- 6. उद्देश्य सी प्रोटोकॉल जेनेरिक
- 7. स्विफ्ट: कोरडाटा और जेनेरिक NSOrderedSet
- 8. प्रोटोकॉल बफर में विरासत
- 9. जेनेरिक समारोह स्विफ्ट
- 10. स्विफ्ट जेनेरिक प्रकार चयन
- 11. स्विफ्ट में पैरामीटर के रूप में संबंधित प्रकार (जेनेरिक प्रोटोकॉल) के साथ प्रोटोकॉल कैसे पास करें?
- 12. जावा जेनेरिक विरासत चेतावनी
- 13. स्विफ्ट - एक सामान्य प्रोटोकॉल
- 14. जेनेरिक बाधाएं और इंटरफ़ेस कार्यान्वयन/विरासत
- 15. जावा जेनेरिक विधि विरासत और ओवरराइड नियम
- 16. जेनेरिक विरासत और कॉलिंग GetMethod()। GetReturnType()
- 17. सी # जेनेरिक विधि विरासत और इंटरफ़ेस
- 18. स्विफ्ट अनुक्रम प्रोटोकॉल
- 19. फ़ाइल का दायरा? स्विफ्ट प्रतिनिधि और प्रोटोकॉल
- 20. स्विफ्ट डिफ़ॉल्ट तर्क और प्रोटोकॉल विधि/फ़ंक्शन
- 21. स्विफ्ट Array.insert जेनेरिक
- 22. स्विफ्ट - जेनेरिक तरीके
- 23. स्विफ्ट जेनेरिक क्लास
- 24. एक प्रोटोकॉल पर स्विफ्ट समेकनीय
- 25. स्विफ्ट प्रोटोकॉल - प्रकार एक आवश्यकता
- 26. अन्य जेनेरिक पैरामीटर
- 27. पायथन और डीजेगो में विरासत और कारखाने के कार्यों
- 28. उद्देश्य-सी प्रोटोकॉल और श्रेणियां विरासत में मिल सकती हैं?
- 29. चेक प्रोटोकॉल अनुरूपता जब प्रोटोकॉल स्विफ्ट में एक enum शामिल?
- 30. जेनेरिक वसंत MVC नियंत्रक के साथ विरासत
के प्रारंभकर्ता कहा जाता है, जब मैंने इनिट फ़ंक्शन के सामने "आवश्यक" विनिर्देशक जोड़ा, तो यह मेरे लिए काम करता था। – user965972