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. |