有什么办法可以在Scala中执行类似argument.<keyword>(function)
的东西吗?将函数传递给Scala中的参数
例如:
[1,2,3].supply(myFunc)
得到6
如果myFunc的是求和函数。
如果我能够做到这一点,链接函数似乎更容易,而不是计算某些内容并将其“包装”到函数调用的参数中。
有什么办法可以在Scala中执行类似argument.<keyword>(function)
的东西吗?将函数传递给Scala中的参数
例如:
[1,2,3].supply(myFunc)
得到6
如果myFunc的是求和函数。
如果我能够做到这一点,链接函数似乎更容易,而不是计算某些内容并将其“包装”到函数调用的参数中。
你可以自己定义它,如果你想要的。它经常被称为 “管道运营商”:
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
你的意思是这样的:
val sum = { (a: Int, b: Int) => a + b }
List(1, 2, 3).reduceLeft(sum)
这是特定于求和函数。我想要像'<任意的arg> .appliedTo(<任意的fn>)',这会和'<任意的fn>。(<任意的arg>)'具有相同的效果。是否有一个与“appliedTo”功能相同的关键字? –
'A <:任何'都不会真的限制太多,是吗? –
@RexKerr呃,我真的不知道为什么我认为这值得添加!我已将其删除。 –