inheritance - What does "trait A <: B" mean? -
स्कला में,
विशेषता A & lt ;: B
/>मतलब है? क्या यह केवल
विशेषता A का विस्तार बी
?
जोड़ने के लिए संपादित किया गया है: मैं टाइप मापदंडों के लिए वाक्यविन्यास से परिचित हूं, और उस संदर्भ में
& lt;:
का अर्थ है हालांकि, उपर्युक्त उदाहरण में मुझे यह प्रतीत होता है किए विशेषता का नाम घोषित किया गया है, एक प्रकार का पैरामीटर नहीं।
एक ही चीज़ को संकलित करने के लिए लगता है।
~ / code / scratch: scala -xprint: typer -e 'trait B; विशेषता ए एंड एलटीः :: 'बी' / 'एसआईपी सार विशेषता बी विस्तारित scala.AnyRef; अमूर्त लक्षण A को java.lang.Object तक फैलाता है। बी ~ / कोड / स्क्रैच: स्कला-एक्सप्रिंट: टाइपर-ए 'गुण बी; विशेषता A का विस्तार बी '/' सीपीयू सार विशेषता बी विस्तारित scala.AnyRef; अमूर्त लक्षण A इस के साथ java.lang.Object को बढ़ाता है। बी
यह कल्पना "5.3.3 लक्षण" में नहीं समझाता है। लेकिन सिंटेक्स सारांश यह उल्लेख करता है।
TraitDef :: id = [TypeParamClause] TraitTemplateOpt TraitTemplateOpt :: = TraitTemplate बढ़ाता है | [[Extends] TemplateBody] बढ़ाता है :: = 'विस्तार' | '& Lt ;:'
UPDATE इसमें शुरू की गई थी कंपाइलर विकल्प
-Xexperimental
के साथ यह गुण को एक सार के रूप में चिह्नित करता है, प्रस्तावित भाषा सुविधा के साथ उपयोग के लिए।-Xexperimental
के बिना, यह 'विस्तार' के लिए एक पर्याय है जो केवल लक्षणों के लिए अनुमति है।
Comments
Post a Comment