scala 类型绑定符号方向有区别吗?
Is there a difference in scala type bound notation direction?
scala 类型绑定符号方向是否存在差异,如 [B <: A]
与 [A >: B]
相同?
在这里 [B <: A]
你声明类型 B
扩展 A
,
这里 [A >: B]
你声明类型 A
是类型 B
.
的父类型
B <: A
表示 B
的 上限 为 A
。这意味着 B
可以是类型层次结构中从 Nothing
到 A
的任何类型。
A >: B
表示 A
具有 B
的 下限 ,这意味着 A
可以是任何值在类型层次结构中从 B
到 Any
。
总的来说,它们不是一个意思。每一个都对不同的类型参数施加了限制。这也不是方差符号,这些是类型边界。
scala 类型绑定符号方向是否存在差异,如 [B <: A]
与 [A >: B]
相同?
在这里 [B <: A]
你声明类型 B
扩展 A
,
这里 [A >: B]
你声明类型 A
是类型 B
.
B <: A
表示 B
的 上限 为 A
。这意味着 B
可以是类型层次结构中从 Nothing
到 A
的任何类型。
A >: B
表示 A
具有 B
的 下限 ,这意味着 A
可以是任何值在类型层次结构中从 B
到 Any
。
总的来说,它们不是一个意思。每一个都对不同的类型参数施加了限制。这也不是方差符号,这些是类型边界。