Quel est le nom idiomatique d'une variable jetable? [fermé]


11

La directive set de Velocity Template Language requiert une variable sur le côté gauche. Ça ne marche pas.

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

Même si je n'ai aucune utilité pour la valeur de retour de add("d"), je dois l'assigner à une variable.

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

Je veux communiquer que la variable est nécessaire, mais je n'ai pas l'intention de l'utiliser plus tard. Existe-t-il une convention pour nommer les variables qui n'existent que pour apaiser le compilateur?


2
que diriez-vous d'utiliser simplement un commentaire
Gratzy

foo? [15 caractères]
Konrad Morawski

6
Je l'appellerais odeur de code.
Joel Etherton

Bonjour Patrick, les questions de nommage variable sont hors sujet ici: pour plus d'informations, consultez Les questions «nommez-vous cette chose» sont-elles sur le sujet?

1
@Mark D'accord, merci. FWIW, je pense que cette question penche davantage vers le «terme approprié pour un concept» que «des suggestions de nom pour une classe ou une méthode». Je cherche un nom idiomatique qui serait utilisé dans différentes langues et bases de code, pas un nom spécifique pour une seule variable.
Patrick McElhaney

Réponses:


26

J'ai tendance à utiliser dummypour ce genre de situation (une variable que je dois avoir mais que je n'ai pas besoin d'utiliser).


J'utilise toujours ignoré. J'aurais ajouté ma propre réponse mais je ne pouvais penser à rien d'autre à dire à ce sujet.
John Buchanan

2
Outre le mannequin, j'utilise également _ (certaines langues l'acceptent), dump, junk, bhole (from black hole), inutile, et quelques autres noms dont je ne me souviens pas pour le moment.
PEdroArthur

+1 car après de nombreuses recherches, j'ai découvert que par défaut, pylint ignore une variable inutilisée nommée "_" ou "dummy". logilab.org/card/pylintfeatures#id9
Patrick McElhaney

Et en cherchant autre chose, j'ai trouvé une mention de $ dummy spécifiquement dans Velocity .
Patrick McElhaney

16

Vous devriez vérifier et voir si votre langue a un nom spécifiquement pour cette utilisation - Python a _que vous devez utiliser pour les variables que vous avez l'intention de jeter.


10
Notez que _c'est le nom traditionnel de ce type de variable dans les langues qui fournissent une correspondance de modèle (ML, Haskell, scala, etc.)
barjak

@barjak Bon à savoir - Je n'ai jamais utilisé aucune de ces langues, je pensais que c'était une chose en Python
Izkata

12

dummy , temp , trash , black_hole , garbage ... l'un d'eux me dit que je ne les utiliserai pour rien.

Si j'utilise if pour quelque chose, je renomme toujours la variable.


1
+1 pour le renommer si vous l'utilisez plus tard.
Spencer Rathbun

Merci, mais cela ne répond pas à la question. Je peux trouver plein de noms qui disent "ce n'est pas important". Je recherche un nom unique et standard.
Patrick McElhaney

À l'exception de quelques langues plus récentes, la plupart n'en ont pas. Une telle norme n'existe pas, si vous ne considérez pas celles qui ont obtenu le plus de votes ici comme «standard».
Tour

3

Vous avez déjà plein de bonnes réponses, mais j'ai pensé en jeter une qui serait plus directement liée à la vélocité.

Qu'est-ce que la méthode d'ajout renvoie? S'il est nul, vous pouvez simplement dire à velocity de le référencer tranquillement:

$!entries.add("d")

Cependant, si vous remplacez une valeur et qu'elle retourne l'ancienne valeur (comme Map.put le fait), vous devrez la définir sur une variable fictive d'une certaine sorte, s'il s'agit d'une méthode void, vous ne devriez pas avoir besoin de la variable du tout.

Si vous êtes catégorique sur le fait de ne pas utiliser de nouvelle variable, vous pouvez procéder comme suit:

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

Si vous l'utilisez assez souvent, je créerais une macro pour cela, puis l'utiliser dans tous vos modèles. Je ne vois pas à quel point cela pourrait être utile, mais au moins vous n'auriez besoin de le commenter qu'une fois ...


Brillant! La méthode retourne truedans ce cas ($ entrées est une ArrayList), mais mec, je souhaite que ça marche.
Patrick McElhaney

J'avais peur que vous fassiez effectivement référence à une liste. J'ai édité la réponse pour indiquer une façon dont vous pourriez vous passer de ne pas utiliser de variable fictive, mais je ne suis pas sûr si je l'utiliserais ...
Scott

2

Je lui donnerais un nom raisonnable et ajouterais un commentaire expliquant que vous ne l'assignez que pour apaiser le compilateur. J'ai vu des cas où quelqu'un a utilisé un nom de variable comme unusedet un autre développeur a ensuite utilisé cette variable par ce nom et a fait un désordre laid du code.


J'aime aussi inutilisé . Le seul problème que j'ai avec c'est le fait que je l'utilise au moment où je l'écris: /
Rook
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.