首页 > 解决方案 > 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

我会知道第三行代码中发生了什么。任何帮助表示赞赏,谢谢

标签: scalaforeach

解决方案


(1 to 10).foreach(println(_+1))

编译器将上述表达式视为:

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

你想要这样:

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

匿名函数的占位符语法用函数替换尽可能小的包含表达式。


推荐阅读