我有一个方法:比赛功能正在发生什么?
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