Als «pattern-matching» getaggte Fragen

Verwenden Sie dieses Tag für Fragen zum Testen, ob eine Datenstruktur eine bestimmte Form hat oder an bestimmten Stellen bestimmte Werte enthält. Viele funktionale Sprachen bieten Mustervergleichskonstrukte. Die meisten Fragen in diesem Tag sollten auch das Tag für die Sprache enthalten, in der Sie programmieren. VERWENDEN SIE DIESEN TAG NICHT FÜR REGELMÄSSIGE AUSDRUCKFRAGEN. VERWENDEN SIE STATT [regex]. Verwenden Sie für den Mustervergleich (Globbing) in POSIX-ähnlichen Shells in ähnlicher Weise [glob].

195
Was macht `: _ *` (Doppelpunkt-Unterstrich) in Scala?

Ich habe den folgenden Code aus dieser Frage : 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!") } Alles darin ist ziemlich...

99
Ordnen Sie mehrere Fallklassen in Scala zu

Ich mache Matching gegen einige Fallklassen und möchte zwei der Fälle auf die gleiche Weise behandeln. Etwas wie das: 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() => "A"...

85
Wie werden mehrere Werte in Scala gemustert?

Angenommen, ich möchte mehrere Rückgabewerte von einem Remotedienst mit demselben Code verarbeiten. Ich weiß nicht, wie ich das in Scala ausdrücken soll: code match { case "1" => // Whatever case "2" => // Same whatever case "3" => // Ah, something different } Ich weiß, dass ich die...

79
Scala Multiple Type Pattern Matching

Ich frage mich, wie ich mehrere Mustermuster verwenden kann. Ich habe: 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 = MyFirst x...