Ich habe Schwierigkeiten, den Unterschied zwischen / Grund für zum Beispiel unveränderbar.Map.Transform und unveränderbar.Map.Map zu verstehen. Es sieht so aus, als würde transform nicht den Schlüssel ändern, aber das scheint nur eine triviale Variante der Kartenmethode zu sein. Fehle ich etwas?
Ich hatte erwartet, eine Methode zu finden, die eine Funktion auf den (Schlüssel, Wert) der Karte anwendet, wenn / wenn auf dieses Element zugegriffen wurde (anstatt die Karte eifrig mit der Map-Funktion zu durchlaufen). Existiert eine solche Methode?
Sie können genau das mit mapValues
machen. Hier ist die Erklärung aus der Dokumentation:
def mapValues [C] (f: (B) ⇒ C): Karte [A, C]
Wandelt diese Map durch Anwenden einer Funktion auf jeden abgerufenen Wert um.
f - die Funktion zum Transformieren von Werten dieser Map.
gibt zurück - eine Kartenansicht, die jeden Schlüssel dieser Karte auf f (this (key)) abbildet. Die resultierende Map umschließt die ursprüngliche Map, ohne irgendwelche Elemente zu kopieren.
Bearbeiten :
Obwohl das Erweitern von Klassen der Auflistungs-API nicht oft eine gute Idee ist, könnte es folgendermaßen funktionieren:
%Vor%Tags und Links scala api map lazy-evaluation