Wzorce sekwencji ignorujące prawą stronę
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
}
}
}
Contributors to this page:
Contents
- Wprowadzenie
- Podstawy
- Hierarchia typów
- Klasy
- Domyślne wartości parametrów
- Parametry nazwane
- Cechy
- Krotki
- Kompozycja klas przez domieszki
- Funkcje wyższego rzędu
- Funkcje zagnieżdżone
- Rozwijanie funkcji (Currying)
- Klasy przypadków
- Dopasowanie wzorców (Pattern matching)
- Obiekty singleton
- Wzorce wyrażeń regularnych
- Obiekty ekstraktorów
- For Comprehensions
- Klasy generyczne
- Wariancje
- Górne ograniczenia typów
- Dolne ograniczenia typów
- Klasy wewnętrzne
- Typy abstrakcyjne
- Typy złożone
- Jawnie typowane samoreferencje
- Parametry domniemane
- Konwersje niejawne
- Metody polimorficzne
- Lokalna inferencja typów
- Operatory
- Parametry przekazywane według nazwy
- Adnotacje
- Pakiety i importy
- Obiekty pakietu