2014-02-13 56 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 
相關問題