匹配功能发生了什么?

时间:2014-10-30 11:53:19

标签: scala

我有一个方法:

  def replaceSpecialSymbols(str: String): String = str.collect {
    case '/'     => '-'
    case _ => _
  }.toString

当我尝试构建此代码时,收到错误消息:“error:unbound placeholder parameter case _ => _”

我知道我可以使用replaceAll。但我想知道Scala编译器在这种情况下发生了什么。

谢谢。

1 个答案:

答案 0 :(得分:5)

使用case x => x - 问题已解决。此外,您可以使用map代替collect,因为这是一场详尽的匹配。

或者如果您只需要第一种情况,请完全删除case _ => _并继续使用collect