Lorsqu'on code une procédure, on utilise trop souvent
en effet, si c'est le dernier argument d'une procédure, cette variable est une liste potentiellement vide (dans ce cas c'est une chaîne vide en fait) qui contiendra les arguments restants.
Un petit exemple est plus parlant:
Il y a aussi un effet pervers: vous ne pouvez pas attribuer de valeur par défaut à $args:
Et en utilisant un autre nom de variable (text est très bien):
En conclusion, soyez exigeant avec vous-même sur le nommage des variables et faites très attention à l'utilisation de $args.
args
à mauvais escient en oubliant que c'est une variable magique.en effet, si c'est le dernier argument d'une procédure, cette variable est une liste potentiellement vide (dans ce cas c'est une chaîne vide en fait) qui contiendra les arguments restants.
Un petit exemple est plus parlant:
tcl
Il y a aussi un effet pervers: vous ne pouvez pas attribuer de valeur par défaut à $args:
tcl
Et en utilisant un autre nom de variable (text est très bien):
tcl
% proc test3 {a1 {a2 "vide"} text} {
puts "a1 = $a1 - a2 = $a2 - text = $text"
}
% test3 un
wrong # args: should be "test3 a1 ?a2? text"
% test3 un deux trois
a1 = un - a2 = deux - text = trois
% test3 un deux trois quatre
wrong # args: should be "test2 a1 ?a2? text"
% test3 un deux "trois quatre"
a1 = un - a2 = deux - text = trois quatre
En conclusion, soyez exigeant avec vous-même sur le nommage des variables et faites très attention à l'utilisation de $args.