看了几个例子后,我不得不说,我没看懂 F-Bounded 多态带来了什么。
使用 scala 学校的示例 ( https://twitter.github.io/scala_school/advanced-types.html#fbounded )
他们解释说他们需要一些 F-Bounded 类型,以便子类可以返回子类型。所以他们做了这样的事情:
trait Container[A <: Container[A]] extends Ordered[A]
class MyContainer extends Container[MyContainer] {
def compare(that: MyContainer) = 0
}
但是当你可以使用这样的东西时,我看不出使用这种类型有什么好处:
trait Container[A] extends Ordered[A]
class MyContainer extends Container[MyContainer] {
def compare(other: MyContainer) = 0
}
任何解释都非常受欢迎
谢谢