Inheritance 什么是;特质A<;:B";什么意思?

Inheritance 什么是;特质A<;:B";什么意思?,inheritance,scala,traits,Inheritance,Scala,Traits,在Scala,什么是 trait A <: B ? 编辑以添加:我熟悉类型参数的语法,以及是的,几乎可以,请参阅了解更多信息。从中,我们可以看到以下定义: 我们定义了两种类型之间的关系 类型等价T≡ U T和U在所有上下文中都是可互换的 一致性T注意从Scala 2.12.5开始,使用查看,它似乎意味着相同的事情。trait的描述只提到trait A扩展了B语法。但是Scala语法摘要使用了扩展和请注意,从Scala2.12.5开始: 使用我认为这意味着B对ADepends微笑,你看的是

在Scala,什么是

trait A <: B
?

编辑以添加:我熟悉类型参数的语法,以及
是的,几乎可以,请参阅了解更多信息。从中,我们可以看到以下定义:

我们定义了两种类型之间的关系

类型等价T≡ U T和U在所有上下文中都是可互换的


一致性T注意从Scala 2.12.5开始,使用
查看,它似乎意味着相同的事情。trait的描述只提到
trait A扩展了B
语法。但是Scala语法摘要使用了
扩展
请注意,从Scala2.12.5开始:


使用
我认为这意味着B对ADepends微笑,你看的是规范的哪一部分!语法摘要附录说,“Extends::='Extends'|'
trait A extends B
ClassTemplateOpt ::= Extends ClassTemplate | [[Extends] TemplateBody]
TraitTemplateOpt ::= Extends TraitTemplate | [[Extends] TemplateBody]
Extends ::= ‘extends’ | ‘<:’
scala -deprecation -e 'trait B; trait A <: B'
/var/folders/0w/kb0d3rqn4zb9fcc91pxhgn8w0000gn/T/scalacmd2374381600671257557.scala:1: warning: Using `<:` for `extends` is deprecated
trait B; trait A <: B
                 ^
one warning found
 ~/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    
TraitDef ::= id [TypeParamClause] TraitTemplateOpt 
TraitTemplateOpt ::= Extends TraitTemplate | [[Extends] TemplateBody]
Extends ::= ‘extends’ | ‘<:’
TraitTemplateOpt ::= Extends TraitTemplate | [[Extends] TemplateBody]
Extends ::= ‘extends’ | ‘<:’ 
$ scala -deprecation -e 'trait B; trait A <: B'
/var/folders/0w/kb0d3rqn4zb9fcc91pxhgn8w0000gn/T/scalacmd4147407032094171597.scala:1: warning: Using `<:` for `extends` is deprecated
trait B; trait A <: B
                 ^
one warning found