特质之间的区别?

时间:2015-06-10 15:02:24

标签: scala

这两个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构造之间的任何区别。

1 个答案:

答案 0 :(得分:1)

在大多数实际情况中,没有区别,正如@AkosKrivachy评论的那样,它们被安排完全等同。然而,虽然the official documentation表示

  

通常可以将抽象类型成员转换为类的类型参数,反之亦然。

最后还说明了

  

此外,有些情况下无法用类型参数替换抽象类型。

可悲的是,我找不到这些案例的描述: - (

我发布这个作为答案,以防更好的答案可能不会出现,你可能想关闭它,但我们希望。