Scala允許您使用下劃線來執行簡單的地圖。因此,例如,而不是書寫:Scala中的List.map中的下劃線和字符串連接
def roleCall(people: String*){
people.toList.map(x => println(x))
}
...我可以代替寫:
def roleCall(people: String*){
people.toList.map(println(_))
}
但是由於某種原因,我不能寫:
def greet(people: String*){
// This won't compile!
people.toList.map(println("Hello " + _))
}
,而不是我要寫:
def greet(people: String*){
people.toList.map(x => println("Hello " + x))
}
任何人都可以expla爲什麼?
谷歌說你的問題在2011年回答http://stackoverflow.com/questions/7673545/usage-of-in-scala-lambda-functions你的 – 2014-10-08 21:10:53
檢查[this](http://stackoverflow.com/問題/ 2173373/scala-foreach-strange-behavior)後。 – 2014-10-08 21:11:48
感謝恩德,那個頁面上的答案很好地解釋了它。我想我會避免任何帶括號的表達式中的_字符(並希望我們的同行程序員)... – 2014-10-09 07:04:47