एक ही बात करने के लिए संकलित करने के लिए लगता है: भाषा कल्पना ऐसा लगता है कि <:
और extends
ही कर रहे हैं, विशेष रूप से यह परिभाषित किया गया है के रूप में में देख रहे हैं।
~/code/scratch: scala -Xprint:typer -e 'trait B; trait A <: B'
// snip
abstract trait B extends scala.AnyRef;
abstract trait A extends java.lang.Object with this.B
~/code/scratch: scala -Xprint:typer -e 'trait B; trait A extends B'
// snip
abstract trait B extends scala.AnyRef;
abstract trait A extends java.lang.Object with this.B
spec "5.3.3 लक्षण" में इसकी व्याख्या नहीं करता है। लेकिन सिंटेक्स सारांश इसका जिक्र करता है।
TraitDef ::= id [TypeParamClause] TraitTemplateOpt
TraitTemplateOpt ::= Extends TraitTemplate | [[Extends] TemplateBody]
Extends ::= ‘extends’ | ‘<:’
अद्यतन यह r14632 में पेश किया गया था। कंपाइलर विकल्प -Xexperimental
के साथ यह प्रस्तावित भाषा सुविधा Virtual Traits के साथ उपयोग के लिए, सार के रूप में विशेषता को चिह्नित करता है। -Xexperimental
के बिना, यह 'विस्तार' के लिए समानार्थी है जिसे केवल लक्षणों के लिए अनुमति है।
मुझे लगता है कि इसका मतलब है कि बी –
FWIW पर मुस्कुरा रहा है, 2.7.5 का मेरा इंस्टॉल इसकी अनुमति नहीं देता है। –
मैं 2.8 स्नैपशॉट (2.8.0.r20331-b20100101020206) का उपयोग कर रहा हूं –