14.13. Wzorce w postaci operacji infiksowych
Podobnie jak w przypadku wywoływania metod, również w przypadku wzorców Scala umożliwia stosowanie operacji infiksowych. Wzorzec postaci a x b, gdzie x jest nazwą klasy przypadku lub ekstraktora, jest równoważny wzorcowi x(a,b). Natomiast wzorzec postaci a x (b,c,...) jest równoważny wzorcowi x(a,b,c,...).
Plik PatternsCaseClasses6.scala: def caseClassPattern2(value: Any) = value match { case "John" Person _ => "Hello John!" case n Person s => "Your name is "+n+" "+s case r RGB (_, _) => "Red component value: "+r }
Zdefiniowana w pliku PatternsCaseClasses6.scala metoda caseClassPattern2 ma wzorce zapisane w postaci operacji infiksowych.
scala> :load PatternsCaseClasses6.scala
Loading PatternsCaseClasses6.scala...
caseClassPattern2: (value: Any)String
scala> caseClassPattern2(new Person("John","Brown"))
res0: String = Hello John!
scala> caseClassPattern2(new Person("Peter","Green"))
res1: String = Your name is Peter Green
scala> caseClassPattern2(new RGB(5,6,7))
res2: String = Red component value: 5
![]() | W języku Scala istnieje również możliwość wykorzystywania wzorców XML, które są przedstawione w punkcie 21.5. |
Plik PatternsCaseClasses6.scala:
def caseClassPattern2(value: Any) = value match {
case "John" Person _ => "Hello John!"
case n Person s => "Your name is "+n+" "+s
case r RGB (_, _) => "Red component value: "+r
}

