我已經閱讀了一些其他問題,例如What are all the uses of an underscore in Scala?,雖然我確定這個問題已經被問到,但我不能通過所有其他17000個Scala問題。佔位符語法不能保留我的地方
有Foreach have strange behaviour和Placeholder not useful,但它似乎仍然是一個hidden feature:
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
有人可以解釋我請的區別?
如果你感到了一陣熱潮,並嘗試:
scala> is foreach { i => println("Hi!") ; Console println 2 * i }
java.lang.IllegalArgumentException: !") ; Console println 2 * i }: event not found
然後看看this answer.是的,真正發生了。
編者按:這個問題問得@ sschaef干預之前有趣很多。批評者有義務在存在的情況下找到該複製品;幾頁谷歌結果說不。 –
我看不出有什麼好笑的,當我毀掉你的笑話時,我很抱歉。對我來說,這看起來像醉漢的意圖。還有一些孿生兄弟,至少我懶得去搜索他們。 – sschaef
@sschaef對我很有趣,就是。在Scala中有N種方式來做所有事情(他們說)導致指數問題。但謝謝你的清理。 –