2014-02-13 58 views
0

如何将匿名函数的结果作为参数发送到另一个函数中?Scala如何发送匿名函数结果作为参数

举个例子:

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最后调用()的工作?

谢谢你的时间。创建后

回答

3

调用匿名函数,立即有它的评估值被使用,而不是本身的功能:

useString((() => { 
    "foo" 
})()) 

您也可以传递参数,如果需要的话:

scala> ((a: String) => { a })("bar") 
res3: String = bar 
相关问题