Pytania oznaczone «pattern-matching»

Użyj tego tagu w przypadku pytań dotyczących testowania, czy struktura danych ma określony kształt lub czy zawiera określone wartości w określonych lokalizacjach. Wiele języków funkcyjnych udostępnia konstrukcje dopasowania wzorców. Większość pytań w tym tagu powinna mieć również tag dla języka, w którym programujesz. NIE UŻYWAJ TEGO TAGU DO REGULARNYCH PYTAŃ WYRAŻENIOWYCH, UŻYWAJ [regex] ZAMIAST; podobnie, do dopasowywania wzorców (globowania) w powłokach podobnych do POSIX, użyj [glob].

195
Co robi `: _ *` (gwiazda dwukropka) w Scali?

Mam następujący fragment kodu z tego pytania : def addChild(n: Node, newChild: Node) = n match { case Elem(prefix, label, attribs, scope, child @ _*) => Elem(prefix, label, attribs, scope, child ++ newChild : _*) case _ => error("Can only add children to elements!") } Wszystko w nim jest...

100
Dopasuj wiele klas przypadków w scali

Robię dopasowywanie do niektórych klas przypadków i chciałbym poradzić sobie z dwoma z nich w ten sam sposób. Coś takiego: abstract class Foo case class A extends Foo case class B(s:String) extends Foo case class C(s:String) extends Foo def matcher(l: Foo): String = { l match { case A() =>...

85
Jak dopasować wzorzec wielu wartości w Scali?

Powiedzmy, że chcę obsłużyć wiele wartości zwracanych z usługi zdalnej przy użyciu tego samego kodu. Nie wiem, jak to wyrazić w Scali: code match { case "1" => // Whatever case "2" => // Same whatever case "3" => // Ah, something different } Wiem, że mogę użyć metody wyodrębniania...

81
Dopasowywanie wzorców wielu typów Scala

Zastanawiam się, jak mogę użyć dopasowania wzorców wielu typów. Mam: abstract class MyAbstract case class MyFirst extends MyAbstract case class MySecond extends MyAbstract case class MyThird extends MyAbstract // shouldn't be matched and shouldn't call doSomething() val x: MyAbstract =...