根据Scala语言规范,
如果两个化合物类型的序列是成对等价的,并且以相同的顺序出现,则它们是等价的,并且它们的改进是等价的.如果它们绑定相同的名称,则两个细化是等效的,并且每个声明的实体的修饰符,类型和边界在两个细化中都是等效的.
但是,给定
trait A { val a: Int }
trait B { val b: String }
Run Code Online (Sandbox Code Playgroud)
我越来越
scala> implicitly[A with B =:= B with A]
res0: =:=[A with B,B with A] = <function1>
Run Code Online (Sandbox Code Playgroud)
即使组件的顺序不同,它们也被认为是等效的.为什么?
scala ×1