scala foreach带有一个扩充,不能执行任何操作?

scala foreach带有一个扩充,不能执行任何操作?,scala,foreach,Scala,Foreach,我刚接触Scala,发现“foreach”有点困惑,比如: (1 to 10).foreach(println(_)) //OK (1 to 10).foreach(x=>println(x+1)) //OK (1 to 10).foreach(println(_+1)) //ERROR 我知道第三行代码是什么。谢谢你的帮助 (1 to 10).foreach(println(_+1)) comiler将上述表达式视为: (1 to 10).foreach(pr

我刚接触Scala,发现“foreach”有点困惑,比如:

    (1 to 10).foreach(println(_)) //OK
    (1 to 10).foreach(x=>println(x+1)) //OK
    (1 to 10).foreach(println(_+1)) //ERROR
我知道第三行代码是什么。谢谢你的帮助

(1 to 10).foreach(println(_+1))
comiler将上述表达式视为:

(1 to 10).foreach(println(x => x + 1))
你希望它是这样的:

(1 to 10).foreach(x=>println(x+1))

匿名函数的占位符语法将尽可能最小的包含表达式替换为一个函数。

没有办法使用uu,因为这种解析在类型检查之前进行,因此编译器实在没有办法读懂您的心思并猜测您的意图 考虑编写下面的代码,不管怎样,它是更干净的代码,因为它将计算与I/O < /P>分开。
(1到10).map(+1).foreach(println)

如果@loojing解决了问题,请接受答案。