如何将匿名函数的结果作为参数发送到另一个函数?
举个例子:
object TestThisFunction {
def getString(): String = {
"foo"
}
def useString(foo: String) = {
println(foo + "bar")
}
useString("foo");
useString(getString());
// This does not work: type mismatch; found : () => String required: String
useString(() => {
"foo"
})
}
是否有一些语法可以使用匿名函数对useString()进行最后一次调用?
感谢您的时间。
答案 0 :(得分:3)
创建后立即调用匿名函数,使用它的评估值,而不是函数本身:
useString((() => {
"foo"
})())
如果需要,您还可以传递参数:
scala> ((a: String) => { a })("bar")
res3: String = bar