将函数传递给Scala中的参数

时间:2011-11-30 14:08:56

标签: function scala arguments chaining

有没有办法像Scala中的argument.<keyword>(function)那样做什么?

例如:

如果myFunc是求和函数,则

[1,2,3].supply(myFunc)会产生6

如果我能够做到这一点,链接函数似乎更容易,而不是计算某些东西并将其“包装”到函数调用的参数中。

2 个答案:

答案 0 :(得分:3)

如果需要,您可以自己定义。它经常被称为“管道运营商”:

class AnyWrapper[A](wrapped: A) {
  def |>[B](f: A => B) = f(wrapped)
}
implicit def extendAny[A](wrapped: A): AnyWrapper[A] = new AnyWrapper(wrapped)

然后:

def plus1(i: Int) = i + 1
val fortyTwo = 41 |> plus1

答案 1 :(得分:0)

你的意思是这样的:

val sum = { (a: Int, b: Int) => a + b }

List(1, 2, 3).reduceLeft(sum)