ses*_*ses 1 scala pattern-matching case-class
我有我的匹配:
val product = parser next match {
case EvElemStart(_, "Product", attrs, _) =>
Some(parseProduct( parser, attrs ))
case _ =>
readNext()
}
Run Code Online (Sandbox Code Playgroud)
在这里,我有4个可能的属性,使用第2和第3个 - "Product"
和attrs
.
我们假设EvelementStart
有20个参数.
然后,我要提到"_"占位的19倍,如果我想用/检查/匹配只有第一,或仅第二个值/参数?
让我们假设EvelementStart有20个参数.
那么,如果我想首先使用/检查/匹配,或者只是第二个值/参数,我应该提到"_"占位符19次吗?
是的,这是它的工作方式.你有一些选择:
您可以匹配类型,并使用匹配对象的字段:
case e : EvElemStart if (e.typeString == "Product") =>
Some(parseProduct( parser, e.attrs ))
Run Code Online (Sandbox Code Playgroud)
或者您可以编写自己的提取器:http://www.scala-lang.org/node/112
归档时间: |
|
查看次数: |
179 次 |
最近记录: |