layout | title | partof | num | language | next-page | previous-page |
---|---|---|---|---|---|---|
tour |
Wzorce wyrażeń regularnych |
scala-tour |
16 |
pl |
extractor-objects |
singleton-objects |
Wzorce ignorujące prawą stronę są użyteczne przy dekomponowaniu danych, które mogą być podtypem Seq[A]
lub klasą przypadku z iterowalnym parametrem, jak w poniższym przykładzie:
Elem(prefix:String, label:String, attrs:MetaData, scp:NamespaceBinding, children:Node*)
W tych przypadkach Scala pozwala wzorcom na zastosowanie symbolu _*
w ostatniej pozycji, aby dopasować sekwencje dowolnej długości.
Poniższy przykład demonstruje dopasowanie wzorca, który rozpoznaje początek sekwencji i wiąże resztę do zmiennej rest
:
object RegExpTest1 extends App {
def containsScala(x: String): Boolean = {
val z: Seq[Char] = x
z match {
case Seq('s','c','a','l','a', rest @ _*) =>
println("rest is " + rest)
true
case Seq(_*) =>
false
}
}
}