Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 只匹配case类中的一些参数,而不是为所有选项放置N个占位符_Scala_Pattern Matching_Case Class - Fatal编程技术网

Scala 只匹配case类中的一些参数,而不是为所有选项放置N个占位符

Scala 只匹配case类中的一些参数,而不是为所有选项放置N个占位符,scala,pattern-matching,case-class,Scala,Pattern Matching,Case Class,我有我的匹配: val product = parser next match { case EvElemStart(_, "Product", attrs, _) => Some(parseProduct( parser, attrs )) case _ => readNext() } 这里我有4个可能的属性,并使用第二个和第三个一-产品和属性 让我们假设EvelementStart有20个参数 那么,如果我只想首先使用

我有我的匹配:

 val product = parser next match {
      case EvElemStart(_, "Product", attrs, _) =>
        Some(parseProduct( parser, attrs ))
      case _ =>
        readNext()
 }
这里我有4个可能的属性,并使用第二个和第三个一-产品和属性

让我们假设EvelementStart有20个参数

那么,如果我只想首先使用/检查/匹配,还是只想第二个值/参数,我应该提到uuu-placeholder 19次

让我们假设EvelementStart有20个参数

那么,如果我只想首先使用/检查/匹配,还是只想第二个值/参数,我应该提到uuu-placeholder 19次

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

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

case e : EvElemStart if  (e.typeString == "Product") =>
    Some(parseProduct( parser, e.attrs ))
或者您可以编写自己的提取器:

让我们假设EvelementStart有20个参数

那么,如果我只想首先使用/检查/匹配,还是只想第二个值/参数,我应该提到uuu-placeholder 19次

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

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

case e : EvElemStart if  (e.typeString == "Product") =>
    Some(parseProduct( parser, e.attrs ))
或者您可以编写自己的提取器: