Ich habe den folgenden Code:
%Vor%Die Fragen sind:
1) Wenn ein Mustervergleich mit einem Schaf erfolgreich ist, wie kann ich darauf zugreifen und es ändern? Es beschwerte sich über die Neuzuweisung zu val, und ich habe dann var
in den Konstruktor gesetzt, aber immer noch ...
2) Ein weiterer Weg, den ich mir vorstellen kann, besteht darin, den gesamten übereinstimmenden Wert einer Variablen zuzuordnen. Gibt es eine Möglichkeit, einen Wert, der durch ein Fallklassen-Konstruktormuster übereinstimmt, an eine Variable zu binden?
(Ich weiß, dass ich wahrscheinlich eine Übereinstimmung mit etwas wie s: Sheep
erstellen und dann s.changeHairTo(None)
aufrufen könnte, aber das ist der am wenigsten bevorzugte Weg).
Das funktioniert nicht, weil in dem Muster die Var "Haare" nur aus dem Sheep-Objekt extrahiert werden, also ist es nicht das Feld von Sheep, sondern eine Variable im Kontext des Case-Blocks. Du könntest es so machen:
%Vor%Sagen Sie Animal, dass es ein veränderliches Feldhaar hat und Sie es einstellen können, ohne es auf den richtigen Typ zu werfen.
Tags und Links scala binding pattern-matching