2015-03-13 53 views
0

我有一个XSD生成:阶匹配字符串*从XSD与maxOccurs的= “无限”

<xs:complexType name="records"> 
    <xs:sequence> 
     <xs:element maxOccurs="unbounded" minOccurs="0" name="return" type="xs:string"/> 
    </xs:sequence> 
    </xs:complexType> 

scalaxb生成此代码:

case class Records(returnValue: String*) 

我试图该图案匹配:

... match { 
    case Records(ids: String*) => 
    ... 

然后编译器错误是:

')' expected but identifier found. 
     case Records(ids: String*) => 
           ^

我也试过case Records(ids: Array[String])case Records(ids: Seq[String]),但没有成功。

如何使用scala模式匹配来匹配这个类?

回答

1
scala> Records("a", "b") match { 
     case Records(strings @ _*) => strings.foreach(println) 
     } 
a 
b 


scala> Records("a", "b") match { 
     case Records(one) => println("one") 
     case Records(one, two) => println("two") 
     case Records(one, two, rest @ _*) => println("more than two") 
     } 
two