Nach dieser Antwort Ссылка können wir dies in Scala tun:
%Vor%Jetzt verstehe ich den Punkt der ignorierten Parameter in Lambda-Ausdrücken, aber ich kann mir keine Beispiele vorstellen, bei denen ich jemals eine Variable deklarieren möchte, die ich definitionsgemäß nicht referenzieren kann. Das einzige Beispiel, an das ich denken kann, ist die Tatsache, dass ich nicht auf implizite Werte zähle, z. B.
%Vor%Ist das der einzige Anwendungsfall? Fehle ich etwas?
Wenn es der einzige Anwendungsfall ist, sollte der Compiler / die IDE keine Warnung / einen Hinweis geben, wenn die val
nicht implizit ist, da es völlig sinnlos ist?
Erläuterung
Nach Variable / Wert meine ich eine einzelne , nicht eine, die Teil einer Extraktionsdeklaration ist.
Ich denke nicht, dass dies ein Feature überhaupt ist. In jedem Fall ist es nicht eine "ignorierte Variable".
Damit meine ich, dass, wenn val _ = 5
wirklich einen unbenannten Wert eingeführt hat, Sie so viele wie Sie wollen im selben Geltungsbereich deklarieren können.
Nicht so:
Aus der Fehlermeldung scheint klar zu sein, dass der Wert tatsächlich den Namen _
hat.
(was ich eine Eigenart des Compilers nennen würde, die behoben werden sollte). Wir können dies überprüfen:
Was die mögliche Verwendung der Verhinderung einer Wertverwerfungswarnung betrifft (wie in der Antwort von som-snytt gezeigt), möchte ich einfach eine explizite Unit
zurückgeben.
Das sieht weniger verworren aus und ist noch kürzer:
im Gegensatz zu:
%Vor%Der andere Anwendungsfall (den ich mir vorstellen kann) bezieht sich auf die Extraktion (und wird unter "Wildcard-Muster" in der verknüpfte Antwort ):
%Vor%Tags und Links scala