Ist es möglich, Fallmuster als Parameter an andere Funktionen zu übergeben? Etwas wie das:
%Vor% Ich denke, Kim Stebels erste Antwort ist nahe daran, was Sie wollen. Ein Mustervergleich als solches ist in Scala kein isoliertes Gebilde. Eine Übereinstimmung kann als a Function1
oder PartialFunction
definiert werden.
Test:
%Vor%Alternativ verwenden Sie die Komposition:
%Vor% Sie möchten also einen Mustervergleichsblock an eine andere Funktion übergeben? Dies kann mit PartialFunction
s geschehen, wie das folgende Beispiel zeigt:
Ihr magischer Typ kann als Strukturtyp geschrieben werden, der nicht angewendet werden kann. Je nachdem, welche Art von Extraktor Sie benötigen, benötigen Sie verschiedene Arten von unapply
oder unapplySeq
. Unten ist ein einfaches Beispiel.
Und so wird es für Listen gemacht:
%Vor%Tags und Links scala pattern-matching first-class