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.

Język programowania Scala Wydanie 2. Copyright © Grzegorz Balcerek 2016

Licencja Creative Commons

Ten utwór jest dostępny na licencji Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowe.

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.