我想要更高阶函数中的隐式参数,例如:
func(arg1) { 隐式 (x, y) => x * y }
但是编译器说:
错误:定义 val a = func("2", "4") { 隐式 (x, y) => ^ 的预期开始
- java版本“1.7.0_40”
- Scala 代码运行器版本 2.10.2-RC2 -- 版权所有 2002-2013,LAMP/EPFL
可运行的示例代码:
object Test extends App {
new Test().run
}
class Test {
def run = {
val a = func("2", "4") { (x, y) => // It's OK
x * y
}
println("a: " + a)
val b = gunc("2", "4") { implicit x => { implicit y => // It's OK
x * y
}}
println("b: " + b)
}
def func(x: String, y: String)(f: (Int, Int) => Int) = f(x.toInt, y.toInt)
def gunc(x: String, y: String)(g: Int => Int => Int) = g(x.toInt)(y.toInt)
def hunc(x: String, y: String)(h: Tuple2[Int, Int] => Int) = h((x.toInt, y.toInt))
}
[添加评论]
我想知道...
我们可以用一个 arg 声明为“隐式 x => ...”。
似乎没有办法声明两个隐式参数。