我有一個方法:比賽功能正在發生什麼?
def replaceSpecialSymbols(str: String): String = str.collect {
case '/' => '-'
case _ => _
}.toString
WHE我嘗試建立這個代碼,我收到錯誤消息:「錯誤:未綁定的佔位符參數情況_ => _」
我知道,我可以使用全部替換。但我想知道這種情況下在Scala編譯器中發生了什麼。
謝謝。
我有一個方法:比賽功能正在發生什麼?
def replaceSpecialSymbols(str: String): String = str.collect {
case '/' => '-'
case _ => _
}.toString
WHE我嘗試建立這個代碼,我收到錯誤消息:「錯誤:未綁定的佔位符參數情況_ => _」
我知道,我可以使用全部替換。但我想知道這種情況下在Scala編譯器中發生了什麼。
謝謝。
使用case x => x
- 問題已解決。此外,您可以使用map
而不是collect
,因爲它是詳盡的匹配。
或者,如果您只需要第一種情況,只需刪除該case _ => _
並繼續使用collect
。
請查看此http://stackoverflow.com/questions/1025181/hidden-features-of-scala/1083523#1083523以瞭解與匿名函數相關的佔位符規則。 – hellraiser 2014-10-30 12:21:10