Was sind die Anwendungsfälle der Ignorierten Variablen-Syntax in Scala?

7

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.

    
samthebest 11.09.2014, 03:33
quelle

3 Antworten

8

Es verwendet einen Wert.

%Vor%

Um zu verifizieren, warnt es auch nicht unter -Ywarn-unused .

    
som-snytt 11.09.2014, 04:19
quelle
15

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:

%Vor%

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:

%Vor%

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:

%Vor%

im Gegensatz zu:

%Vor%     
Régis Jean-Gilles 11.09.2014 08:21
quelle
6

Der andere Anwendungsfall (den ich mir vorstellen kann) bezieht sich auf die Extraktion (und wird unter "Wildcard-Muster" in der verknüpfte Antwort ):

%Vor%     
Sean Vieira 11.09.2014 03:44
quelle

Tags und Links