1

我有我的匹配:

 val product = parser next match {
      case EvElemStart(_, "Product", attrs, _) =>
        Some(parseProduct( parser, attrs ))
      case _ =>
        readNext()
 }

在这里,我有 4 个可能的属性并使用第 2 和第 3 个 one -"Product"attrs.

让我们假设EvelementStart有 20 个参数。

那么,如果我只想使用/检查/匹配第一个第二个值/参数,我应该提到“_”占位符 19 次吗?

4

1 回答 1

8

让我们想象一下 ElementStart 有 20 个参数。

那么,如果我只想首先使用/检查/匹配,还是只想使用第二个值/参数,我应该提到“_”占位符 19 次吗?

是的,这就是它的工作方式。不过,您有一些选择:

您可以只匹配类型,并使用匹配对象的字段:

case e : EvElemStart if  (e.typeString == "Product") =>
    Some(parseProduct( parser, e.attrs ))

或者您可以编写自己的提取器:http ://www.scala-lang.org/node/112

于 2013-05-04T05:28:12.213 回答