14.6. Krotki we wzorcach
Krotki posiadają specjalne wsparcie w składni języka Scala. Również w przypadku dopasowania wzorców język oferuje specjalne wsparcie dla krotek. W pliku PatternsTuples.scala znajdują się przykłady wzorców dopasowujących krotki.
Plik PatternsTuples.scala: def tuplePattern(value: Any):String = value match { case (x, y) => "Tuple2. x: "+x+" y:"+y case (x: Int, _, _) => "Tuple3. x: "+x case _ => "Not matched." }
Pierwszy wzorzec dopasowuje dowolną krotkę dwuelementową. Jednocześnie zmiennym x i y przypisywane są wartości obu elementów krotki. Drugi wzorzec dopasowuje trójelementową krotkę, w której pierwszy element jest typu Int. Użyte wzorce ilustrują też to, że różne rodzaje wzorców można łączyć ze sobą.
scala> :load PatternsTuples.scala
Loading PatternsTuples.scala...
tuplePattern: (value: Any)String
scala> tuplePattern((1,2))
res0: String = Tuple2. x: 1 y:2
scala> tuplePattern((1,2,3))
res1: String = Tuple3. x: 1
scala> tuplePattern(("abc",2,3))
res2: String = Not matched.
Plik PatternsTuples.scala:
def tuplePattern(value: Any):String = value match {
case (x, y) => "Tuple2. x: "+x+" y:"+y
case (x: Int, _, _) => "Tuple3. x: "+x
case _ => "Not matched."
}
