给定方法
def f(a: String, b: String) = ???
我想同时获得部分应用的功能(带有第一个参数和第二个参数)。
我写了以下代码:
def fst = f _ curried "a"
def snd = (s: String) => (f _ curried)(s)("b")
有没有更好的办法 ?
[更新] snd可以写成更短的
def snd = (f _ curried)((_: String))("b")
最佳答案
这比较简单:
def fst = f("a", (_: String))
def snd = f((_: String), "b")
但是请注意,它会在每次调用时重新计算部分应用的函数,因此在大多数情况下,我宁愿使用
val
(或者也许是lazy val
)而不是def
。