我对 scala 中 'block' {...} 结构的各种用途感到有些困惑,尤其是在调用以下示例中的高阶函数时。
def higherOrder(func: Int => Int): Int = {
func(4)
}
val f = ((x: Int) => x*x)
然后我可以像这样调用higherOrder:
higherOrder(f)
, 或者higherOrder {f}
, 或者higherOrder { x => x*x }
(1) 很明显,但我无法理解编译器如何解析 (2) 和 (3) 的语法 有人能解释一下 (2) 和 (3) 对应的语言规范吗?