函数组合导致方法首先缺少参数列表
Function composition results in missing argument list for method first
假设我们有以下函数:
def first(a: A): B = ???
def second(b: B): C = ???
我想用 andThen
来组合它们,但是下面的代码:
(first andThen second)(a)
结果:
<console>:14: error: missing argument list for method first
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `first _` or `first(_)` instead of `first`.
(first andThen second) (1)
andThen()
是 Function
上的一个方法。正如您所定义的,first()
是一种方法 (def
),而不是函数。那些是 different entities.
您可以将其定义为一个函数...
val first : A => B = (a:A) => ???
... 或者您可以使用 将其提升为功能状态。
(first _ andThen second)
据说 Scala 3 将提供更透明的 eta 扩展机制,这样方法和函数之间的区别就不会那么麻烦了。
假设我们有以下函数:
def first(a: A): B = ???
def second(b: B): C = ???
我想用 andThen
来组合它们,但是下面的代码:
(first andThen second)(a)
结果:
<console>:14: error: missing argument list for method first
Unapplied methods are only converted to functions when a function type is expected.
You can make this conversion explicit by writing `first _` or `first(_)` instead of `first`.
(first andThen second) (1)
andThen()
是 Function
上的一个方法。正如您所定义的,first()
是一种方法 (def
),而不是函数。那些是 different entities.
您可以将其定义为一个函数...
val first : A => B = (a:A) => ???
... 或者您可以使用
(first _ andThen second)
据说 Scala 3 将提供更透明的 eta 扩展机制,这样方法和函数之间的区别就不会那么麻烦了。