1

为什么会这样:

val addOne = {a : Int => a + 1 }

但这不是:

val addOne = a: Int => a + 1

据我了解,两者都声明了一个带有一个输入参数的匿名函数。

4

2 回答 2

5

参数列表必须放在括号中。

val addOne = (a: Int) => a + 1

有关完整语法,请参阅语言规范。

于 2012-05-08T09:03:01.963 回答
4

因为您定义了一个函数并将其分配给一个值。

{ a: Int => a + 1 }

是一个定义的函数。您也可以这样定义函数:

(a: Int) => a + 1

或者

(a: Int) => { a + 1 }

这是相同的。如果您不想在孔表达式周围使用括号,则只需将参数列表用括号括起来即可。

于 2012-05-08T09:14:04.753 回答