我有以下功能
scala> def f1 = (prefix: String) => prefix + ".field"
f1: String => java.lang.String
我想从 f1 定义另一个函数,将前缀的值固定为 p1,就像这样
def f2: () => String = () => f1("p1")
或更短时间
def f2 = () => f1("p1")
我认为使用 Function.curried 或 f.curried 和部分应用函数可以实现相同的目标,但我仍然无法做到......
--
看看这篇文章,我发现了一种更详细的定义方式。我想上面的语法对于这种较长的形式来说只是糖...
scala> object f2 extends Function0[String] {
| override def apply = f1("p1")
| }
defined module f2
scala> f2
res37: f2.type = <function0>
scala> f2()
res38: java.lang.String = p1.field