【问题标题】:What was the reason to restrict on combining implicit parameters and view/context bounds?限制组合隐式参数和视图/上下文边界的原因是什么?
【发布时间】:2011-10-13 18:59:44
【问题描述】:

One of the recent commits 到 Scala master 消除了将上下文/视图边界与隐式参数结合起来的限制。这是一个很大的改进,减少了样板的数量,但之前做出这种限制的原因是什么,我们现在可以期待什么后果?

【问题讨论】:

    标签: scala implicit context-bound view-bound


    【解决方案1】:

    上下文和视图边界添加隐式参数。所以如果你写:

    def f[T : Manifest](l: List[T])(implicit ord: Ordering[T]) 
    

    事实上,有两个隐式参数被传递而不是一个。允许这种语法肯定会导致一些混乱。随着隐式参数的使用开始变得越来越普遍,由于类型类,能够执行上述操作会很有帮助。

    【讨论】:

    • “上下文和视图边界添加隐式参数” >> 当然,我知道。我很感兴趣,如果它是由任何技术困难引起的。
    • IMO,不能将边界与隐式参数一起使用对于新手来说也可能会非常混乱:)
    • @Vasil 我并不是说这是一个糟糕的决定,只是它增加了一定程度的......混乱。像f(List(1 -> 2, 2 -> 1))(Ordering by (_.swap)) 这样调用上述函数是非法的,即使它似乎正确填写了所有参数列表。
    猜你喜欢
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    • 1970-01-01
    • 2016-12-27
    • 2012-05-17
    • 2020-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多