带有多个参数的scala隐式方法

xie*_*fei 6 scala implicit

在对SIP-13的评论中,Martin Odersky暗示可以使用多个参数创建隐式方法.根据我的经验,隐式方法总是只有一个参数,我无法想象如何使用具有多个参数的隐式方法.有人可以提供一些用例和解释吗?

dre*_*xin 8

例如,如果您需要函数类型的隐式参数:

implicit def foo(x: Int, y: Int) = y * x

def bar(x: Int, y: Int)(implicit f: (Int, Int) => Int) = f(x,y)

scala> bar(3,4)
res3: Int = 12
Run Code Online (Sandbox Code Playgroud)