【发布时间】:2011-10-13 18:59:44
【问题描述】:
One of the recent commits 到 Scala master 消除了将上下文/视图边界与隐式参数结合起来的限制。这是一个很大的改进,减少了样板的数量,但之前做出这种限制的原因是什么,我们现在可以期待什么后果?
【问题讨论】:
标签: scala implicit context-bound view-bound
One of the recent commits 到 Scala master 消除了将上下文/视图边界与隐式参数结合起来的限制。这是一个很大的改进,减少了样板的数量,但之前做出这种限制的原因是什么,我们现在可以期待什么后果?
【问题讨论】:
标签: scala implicit context-bound view-bound
上下文和视图边界添加隐式参数。所以如果你写:
def f[T : Manifest](l: List[T])(implicit ord: Ordering[T])
事实上,有两个隐式参数被传递而不是一个。允许这种语法肯定会导致一些混乱。随着隐式参数的使用开始变得越来越普遍,由于类型类,能够执行上述操作会很有帮助。
【讨论】:
f(List(1 -> 2, 2 -> 1))(Ordering by (_.swap)) 这样调用上述函数是非法的,即使它似乎正确填写了所有参数列表。