Wie lautet der idiomatische Name für eine Wegwerfvariable? [geschlossen]

11

Die Set-Direktive von Velocity Template Language erfordert eine Variable auf der linken Seite. Das funktioniert nicht.

#set ( $entries.add("d") )

Obwohl ich den Rückgabewert von nicht verwenden kann add("d"), muss ich ihn einer Variablen zuweisen.

#set ( $x = $entries.add("d") ) 

Ich möchte mitteilen, dass die Variable notwendig ist, habe aber nicht die Absicht, sie später zu verwenden. Gibt es eine Konvention zum Benennen von Variablen, die nur existieren, um den Compiler zu beschwichtigen?

Patrick McElhaney
quelle
2
Wie wäre es nur mit einem Kommentar
Gratzy
foo? [15 Zeichen]
Konrad Morawski
6
Ich würde es Code-Geruch nennen.
Joel Etherton
Hallo Patrick, Fragen zur Benennung von Variablen sind hier nicht zum Thema: Weitere Informationen finden Sie unter Sind Fragen zum Thema "Thema" themenbezogen?
1
@ Mark Okay, danke. FWIW, ich denke, diese Frage neigt eher zum "richtigen Begriff für ein Konzept" als zum "Benennen von Vorschlägen für eine Klasse oder eine Methode". Ich suche nach einem idiomatischen Namen, der in verschiedenen Sprachen und Codebasen verwendet wird, nicht nach einem bestimmten Namen für eine einzelne Variable.
Patrick McElhaney

Antworten:

26

Ich neige dazu, dummyfür diese Art von Situation zu verwenden (eine Variable, die ich haben muss , obwohl ich sie nicht verwenden muss).

Oded
quelle
Ich benutze immer ignoriert. Ich hätte meine eigene Antwort hinzugefügt, aber mir fiel nichts anderes ein, was ich dazu sagen könnte.
John Buchanan
2
Neben Dummy verwende ich auch _ (einige Sprachen akzeptieren es), Dump, Junk, Bhole (vom Schwarzen Loch), nutzlos und einige andere Namen, an die ich mich momentan nicht erinnere.
PEdroArthur
+1, da ich nach langem Suchen festgestellt habe, dass pylint standardmäßig eine nicht verwendete Variable mit dem Namen "_" oder "Dummy" ignoriert. logilab.org/card/pylintfeatures#id9
Patrick McElhaney
Und auf der Suche nach etwas anderem wurde $ dummy speziell in Velocity erwähnt .
Patrick McElhaney
16

Sie sollten überprüfen, ob Ihre Sprache einen Namen speziell für diese Verwendung hat - Python hat diesen Namen _, den Sie für Variablen verwenden sollten, die Sie wegwerfen möchten.

Izkata
quelle
10
Beachten Sie, dass dies _der traditionelle Name für diese Art von Variablen in Sprachen ist, die Mustervergleich bieten (ML, Haskell, Scala usw.)
Barjak
@barjak Gut zu wissen - Ich habe noch nie eine dieser Sprachen verwendet, ich dachte, es wäre eine Python-Sache
Izkata
12

Dummy , Temp , Trash , Black_hole , Müll ... einer von diesen sagt mir, dass ich sie für nichts verwenden werde.

Wenn ich if für etwas verwende, benenne ich die Variable trotzdem immer um.

Turm
quelle
1
+1 zum Umbenennen, wenn Sie es später verwenden.
Spencer Rathbun
Danke, aber das beantwortet die Frage nicht. Ich kann mir viele Namen ausdenken, die sagen: "Das ist nicht wichtig." Ich suche einen einzigen Standardnamen.
Patrick McElhaney
Mit Ausnahme einiger neuerer Sprachen haben die meisten keine. Ein solcher Standard existiert nicht, wenn Sie diejenigen, die hier die meisten Stimmen erhalten haben, nicht als "Standard" betrachten.
Turm
3

Sie haben bereits viele gute Antworten, aber ich dachte, ich würde eine werfen, die direkter mit der Geschwindigkeit zusammenhängt.

Was gibt die add-Methode zurück? Wenn es null ist, können Sie die Geschwindigkeit einfach anweisen, leise darauf zu verweisen:

$!entries.add("d")

Wenn Sie jedoch einen Wert ersetzen und der alte Wert zurückgegeben wird (wie dies bei Map.put der Fall ist), müssen Sie ihn auf eine Dummy-Variable setzen. Wenn es sich um eine void-Methode handelt, sollten Sie den Wert nicht benötigen überhaupt variabel.

Wenn Sie darauf bestehen, keine neue Variable zu verwenden, können Sie Folgendes tun:

#if($entries.add("d")) #end

Wenn Sie es oft genug verwenden, würde ich ein Makro dafür erstellen und es dann in Ihren Vorlagen verwenden. Ich sehe zwar nicht ein, wie nützlich das sein könnte, aber zumindest müssten Sie es nur einmal kommentieren ...

Scott
quelle
Brillant! Die Methode gibt truein diesem Fall zurück ($ entry ist eine ArrayList), aber Mann, ich wünschte, das hätte funktioniert.
Patrick McElhaney
Ich hatte Angst, dass Sie tatsächlich auf eine Liste verweisen. Ich habe die Antwort bearbeitet, um einen Weg zu kennzeichnen, wie Sie eine Dummy-Variable nicht verwenden können, aber ich bin mir nicht sicher, ob ich sie verwenden würde ...
Scott
2

Ich würde ihm einen vernünftigen Namen geben und einen Kommentar hinzufügen, der erklärt, dass Sie ihn nur zuweisen, um den Compiler zu beschwichtigen. Ich habe Fälle gesehen, in denen jemand einen Variablennamen wie verwendet hat unusedund ein anderer Entwickler diese Variable anschließend mit diesem Namen verwendet und den Code hässlich durcheinander gebracht hat.

smp7d
quelle
Ich mag auch unbenutzt . Das einzige Problem, das ich damit habe, ist die Tatsache, dass ich es in dem Moment benutze, in dem ich es schreibe: /
Rook