为什么这样做:
val addOne = {a : Int => a + 1 }
但这不是:
val addOne = a: Int => a + 1
据我所知,两者都声明了一个带有一个输入参数的匿名函数。
答案 0 :(得分:5)
参数列表必须放在括号中。
val addOne = (a: Int) => a + 1
有关完整语法,请参阅语言规范。
答案 1 :(得分:4)
因为你定义了一个函数并将它赋值给一个值。
{ a: Int => a + 1 }
是已定义的功能。您也可以通过这种方式定义函数:
(a: Int) => a + 1
或
(a: Int) => { a + 1 }
它是一样的。你只需要用括号包装参数列表,如果你不想使用paranthese来表示空洞表达式,就可以使它工作。