这两个trait
之间有什么区别吗?
scala> trait Bar[A <: Foo] {
| def bippy(x: A): A
| }
defined trait Bar
和
scala> trait BarTwo {
| type A <: Foo
|
| def bippy(x: A): A
| }
defined trait BarTwo
修改:
根据我的问题,他们名字的不同并不是一个有意义的差异。我正在寻找这两个trait
构造之间的任何区别。
答案 0 :(得分:1)
在大多数实际情况中,没有区别,正如@AkosKrivachy评论的那样,它们被安排完全等同。然而,虽然the official documentation表示
通常可以将抽象类型成员转换为类的类型参数,反之亦然。
最后还说明了
此外,有些情况下无法用类型参数替换抽象类型。
可悲的是,我找不到这些案例的描述: - (
我发布这个作为答案,以防更好的答案可能不会出现,你可能想关闭它,但我们希望。