我正在阅读这本书" Scala in depth",并找到了一些我无法理解的观点。
首先,让我们看一下关于"下界"的例子。和"上限"从书中可以看出:
type B <: Traversable[Int] // Upper bound definition
type B >: List[Int] // Define lower bound restriction
我能理解他们。
但是我在第135页看到了这句话:
我认为这是错的吗?它应该是:指定下限约束还允许您使用在下限上定义的成员。上限约束并不意味着成员可能在某个类型上,但在组合多个参数化类型时非常有用。
指定上限绑定约束还允许您使用上边界上定义的成员。 较低绑定约束并不意味着成员可能属于某个类型,但在组合多个参数化类型时非常有用。
不应该吗?
在我看来,
class Hello[T] {
def test1[U >: T](x: U): U = x
def test2[U <: T](x: U): T = x
}
test1
是lower bound
而test2
是upper bound
,对吧?