【发布时间】:2015-06-03 01:48:23
【问题描述】:
看了几个例子之后,不得不说,我没看懂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
}
非常欢迎任何解释
谢谢
【问题讨论】:
标签: scala types polymorphism f-bounded-polymorphism