【发布时间】:2015-09-20 06:01:22
【问题描述】:
我碰到了使用这种语法的代码:
def foo[T <: A: B]
B 在定义中添加了什么样的约束?
【问题讨论】:
标签: scala
我碰到了使用这种语法的代码:
def foo[T <: A: B]
B 在定义中添加了什么样的约束?
【问题讨论】:
标签: scala
约束有两个独立的部分,以简写形式表示:
T <: A(这意味着T 必须是A 的子类型)。
T : B context bound 这意味着 B[T] 是隐式需要的。
上下文边界是一种语法糖。脱糖后,函数签名如下所示:
def foo[T <: A](implicit param: B[T])
【讨论】:
这称为“上下文绑定”,详细说明请参见question
【讨论】: