我在高阶定义中遇到圆括号错误。以下代码工作正常:
val foo: Int => (Int => Int) = n => n + _*2
但是,添加括号后会出现编译器错误
val foo1: Int => (Int => Int) = n => n + (_*2)
Error:(34, 56) missing parameter type for expanded function ((<x$5: error>) => x$5.$times(2))
我知道我可以使用另一种样式来避免错误:
val bar = (x: Int) => (y: Int) => x + (y*2)
我感兴趣的是括号的问题是什么以及如何以相同的格式正确使用它们来格式化高阶函数