使用FunctionX#令行禁止(Using FunctionX#curried)

2019-10-19 04:29发布

我定义foo

scala> def foo(x: Int, y:Int): Int = x + y
foo: (x: Int, y: Int)Int

然后,我无法设置bar等于curried的功能foo

scala> def bar = foo.curried
<console>:8: error: missing arguments for method foo;
follow this method with `_' if you want to treat it as a partially applied 
function
       def bar = foo.curried
             ^

我究竟做错了什么?

Answer 1:

foo是不是一个函数,这是一个方法。 这不是一个物体,它没有自己的方法。 curried是关于类型的对象的方法FunctionN

你必须把它转换为函数:

(foo _).curried

随着foo _要创建类型的新对象Function2



文章来源: Using FunctionX#curried
标签: scala