2013-04-01 14 views
9

मैं अभी Programming Scala पढ़ रहा हूं। मैं अभी अंतर्निहित प्रकार रूपांतरण पर अध्याय के माध्यम से मिला, जहां <% प्रतीक पेश किया गया है। <: प्रतीक और < प्रतीक भी है।स्कैला जेनरिक प्रकार की बाधाएं

क्या कोई व्यक्ति विभिन्न प्रकार की बाधाओं को सारांशित कर सकता है? उदाहरण के लिए मैं <: और < के बीच के अंतर के साथ संघर्ष कर रहा हूं। मैं उत्सुक हूं यदि कोई अन्य व्यक्ति है जिसे मैंने अभी तक कवर नहीं किया है।

+0

http://stackoverflow.com/questions/4465948/what-are-scala-context-and-view-bounds की संभावित डुप्लिकेट यह भी देखना http://stackoverflow.com/questions/3427345/what-do-and -मेन-इन-स्कैला -2-8-और-कहां-वे-दस्तावेज –

+0

@ ओम-नाम-नाम मैं आपके द्वारा सूचीबद्ध पोस्ट में संबोधित ऑपरेटरों से चिंतित नहीं हूं। मैं टाइप बाधा ऑपरेटरों से संबंधित हूं: '<:', '<%', '>:', आदि। वे पूरी तरह से असंबंधित हैं। –

उत्तर

16

< नामक कोई प्रकार की बाधा नहीं है।

A <: B मतलब है A सचमुच B की एक उप-प्रकार है (जहां उप-प्रकार reflexively परिभाषित किया गया है, किसी भी प्रकार T के लिए जिसका अर्थ यह मामला है कि T <: T है)।

A <% B मतलब है A या तो B की एक उप-प्रकार है या वहाँ जो AA <: B के लिए एक अलग प्रकार की AA करने के लिए A से एक अंतर्निहित रूपांतरण है। इसे "दृश्य बाध्य" कहा जाता है।

A >: B का अर्थ है AB का सुपरटेप है।

+0

आप सही हैं, कोई '<' बाधा नहीं है। '>: 'बाधा के बारे में क्या? –

+0

मैंने अभी 'सूची' को लागू करने के अध्याय को पढ़ना शुरू कर दिया है। यह बताता है कि 'सूची' [']' सूची 'बनाने के लिए' सूची [फल] 'बनाने के लिए इस्तेमाल किया जा सकता है,' सूची [ऐप्पल] 'में' ऑरेंज 'जोड़ते समय। यह एक बहुत ही रोचक बाधा है। –

+0

अधिक सटीक: ए <% बी का अर्थ है ए से एक अलग प्रकार के एए में एक अंतर्निहित रूपांतरण है जिसके लिए एए <: बी यदि ए बी का उप प्रकार है, तो एए ए के समान हो सकता है: पहचान फ़ंक्शन (जिसे प्रीडिफ में परिभाषित किया गया है और हमेशा गुंजाइश में) वास्तविक रूपांतरण के बजाय लागू किया जा सकता है। लेकिन यदि ए बी का उप-प्रकार है, तो एक अलग प्रकार के एए में एक निहित रूपांतरण हो सकता है जो Predef.identity() पर प्राथमिकता लेता है। उस स्थिति में, कंपाइलर एए प्रकार का अनुमान लगाएगा। Implicits की precendence पर निर्भर करता है। –

संबंधित मुद्दे