我已经阅读了一些其他问题,例如Scala中下划线的所有用途是什么?虽然我确信这个问题已被提出,但我无法解决所有其他17000个Scala问题.
有一个Foreach有奇怪的行为,占位符没用,但它似乎仍然是一个隐藏的功能:
scala> val is = (1 to 5) toList
is: List[Int] = List(1, 2, 3, 4, 5)
scala> is foreach { i => println("Hi.") ; Console println 2 * i }
Hi.
2
Hi.
4
Hi.
6
Hi.
8
Hi.
10
scala> is foreach { println("Hi.") ; Console println 2 * _ }
Hi.
2
4
6
8
10
Run Code Online (Sandbox Code Playgroud)
请有人解释一下我的区别吗?
如果你感到一阵热情并尝试:
scala> is foreach { i => println("Hi!") ; Console println 2 * i }
java.lang.IllegalArgumentException: !") ; Console println 2 * i }: event not found
Run Code Online (Sandbox Code Playgroud)
然后看到这个答案. 是的,真的发生了.
| 归档时间: |
|
| 查看次数: |
189 次 |
| 最近记录: |