4
我對scala中'block'{...}構造的各種用法有點困惑,尤其是在調用如下例所示的高階函數時。令人困惑的Scala高階函數調用語法
def higherOrder(func: Int => Int): Int = {
func(4)
}
val f = ((x: Int) => x*x)
然後我可以叫高階像這樣:
higherOrder(f)
,或higherOrder {f}
,或者higherOrder { x => x*x }
(1)很明顯, 但我無法圍繞編譯器解析(2)和(3)的語法如何解釋 有人可以解釋(2)和(3)對應的關於到language specification?
Duplicates http://stackoverflow.com/q/17160145/1296806或http://stackoverflow.com/q/17639922/1296806或http://stackoverflow.com/q/13872196/1296806或其他。從這些模糊鏈接到其他模糊。 :) –
簡短回答:參數塊可以只是一個塊。 {block}向最後一個陳述進行迴應。 –
好的感謝指針我認爲所有那些花哨的語法對語言的傷害比好的多。應該有一種顯而易見的方式來完成像Python中的(禪)那樣的給定事物 – Imaxd