我有一个xsd:
<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模式匹配来匹配此类?
答案 0 :(得分: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