2009-09-23 7 views
3

Je voudrais avoir un commentaire dans une commande et il semble que ce n'est pas possible étant donné que le caractère '#' est défini dans Tcl 8.4 pour être:Un moyen d'intégrer un commentaire dans une commande Tcl?

Si un caractère de hachage ("#") apparaît à un point où Tcl attend le premier caractère du premier mot d'une commande, puis le caractère de hachage et les caractères qui le suivent, jusqu'à la nouvelle ligne suivante, sont traités comme un commentaire et ignorés. Le caractère de commentaire n'a de signification que lorsqu'il apparaît au début d'une commande.

Imaginez cet exemple de la façon dont cela pourrait fonctionner (aucun de ces commentaires dans mes expériences de travail):

array set myArray [list red 3  \ 
         blue 4  ;# Blue is before purple. 
         purple 5  # Purple is after red. 
         green 7  \ 
         yellow 8] 

la Semble partie délicate est de savoir comment continuer la commande de liste avec un commentaire intégré? Peut-être quelque chose comme le style C++ de/* Commentaire intégré ici. */mais je ne vois que # comme étant utilisé dans Tcl pour les commentaires en fin de ligne, rien pour la syntaxe de début et de fin de commentaire.

Répondre

6

Non, vous ne pouvez pas incorporer un commentaire dans l'appel d'une commande. Les commentaires dans Tcl ne fonctionnent pas de la même manière que dans d'autres langues. Certaines personnes trébuchent dessus, les programmeurs Tcl les plus expérimentés n'y réfléchissent pas.

Les rares fois où vous avez vraiment besoin de faire cela, vous pouvez généralement le contourner facilement. En utilisant votre exemple:

set myArray(red) 3 
set myArray(blue) 4 ;# Blue is before purple 
set myArray(purple) 5 ;# Purple is after red 
set myArray(green) 7 
set myArray(yellow) 8 

Vous pourriez penser que cela est plus lent que de le faire sur une seule ligne, mais la différence est négligeable dans l'ensemble, mais la plupart du temps des situations critiques, probablement de l'ordre de quelques microsecondes.

Questions connexes