【问题标题】:Scala type boundary and context type combined shorthand formScala类型边界和上下文类型组合的简写形式
【发布时间】:2015-09-20 06:01:22
【问题描述】:

我碰到了使用这种语法的代码:

def foo[T <: A: B]

B 在定义中添加了什么样的约束?

【问题讨论】:

    标签: scala


    【解决方案1】:

    约束有两个独立的部分,以简写形式表示:

    1. T &lt;: A(这意味着T 必须是A 的子类型)。

    2. T : B context bound 这意味着 B[T] 是隐式需要的。

    上下文边界是一种语法糖。脱糖后,函数签名如下所示:

    def foo[T <: A](implicit param: B[T])
    

    【讨论】:

      【解决方案2】:

      这称为“上下文绑定”,详细说明请参见question

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-07-22
        • 2021-01-24
        • 2013-05-31
        • 2018-03-19
        • 2013-12-25
        • 2022-12-09
        相关资源
        最近更新 更多