Martin 提到过说,他们在dotty中引入了复合类型和交叉类型。在他的幻灯片上有两张图片,代表新旧系统上下界的差异。
这是旧的那个:

这是一个新的:

有人能解释一下upper bound对于T <: U到底意味着什么吗?为什么当前版本的scala是无限的?例如,对于T >: U来说,它会有多大的不同。
发布于 2018-10-07 10:32:25
如果T <: U (即T是U的子类型或U是T的超级类型),那么U是T的上限,而T是E 110下限<代码>E 211用于U。
在Scala 2中
T with U <: T
T with U <: U
U with T <: T
U with T <: U在多蒂
T & U =:= U & T
T | U =:= U | T
T & U <: T
T & U <: U
T <: T | U
U <: T | U如果T <: U那么
T with U =:= T
T & U =:= T
T | U =:= U如果是T >: U,那么U <: T和反之亦然
T with U =:= U
T & U =:= U
T | U =:= T在Scala 2中,如果T和U来自不同的继承层次结构(或者更准确地说,是子类型层次结构),那么最好的方法是
T <: Any
U <: Any在这个意义上,上限是无限的。
https://stackoverflow.com/questions/52687112
复制相似问题