En réponse au commentaire de Toddius Zho, je l'ai vu quelques questions (et les avait moi-même) pourquoi les accolades sont utilisées lors de l'utilisation de variables par exemple $ {var}
Dans TCL, une variable scalaire standard peut être composée de n'importe quel caractère. Cependant, l'opérateur de substitution variable « $ » suppose que vous utilisez des caractères alphanumériques et caractères de soulignement (plus séparateurs d'espace de noms « :: »)
Donc, si une variable est définie par un caractère non alphanumérique, comme « ! », TCL Erreur lors de la tentative de substitution de la variable.
% set myvar! 123
123
% puts $myvar!
can't read "myvar": no such variable
utilisant des accolades l'opérateur de substitution ne pas d'erreur:
% set myvar! 123
123
%puts ${myvar!}
123
En effet, TCL ne fonctionne pas substitution/interpolation sur quoi que ce soit défini entre accolades.
http://www.tcl.tk/man/tcl8.5/TclCmd/Tcl.htm
Dans le cas où il n'a pas été clair dans la réponse, interpolation signifie que la substitution se produira. Si vous avez une variable nommée myvar = "some string", alors {a $ myvar b} donnera la chaîne littérale "a $ myvar b" ... tandis que "a $ myvar b" donnera la chaîne littérale "a une chaîne b " – RHSeeger
merci, je pense que je comprends maintenant. devra utiliser tcl un peu plus pour comprendre pleinement je suppose. –
J'aime dire "vous n'avez besoin que d'utiliser des accolades lorsque vous avez besoin d'accolades", ce qui signifie que - contrairement à la plupart des autres langues - les accolades sont * seulement * pour la citation. Il n'y a rien dans le langage qui vous oblige à utiliser des accolades. Ils citent un mécanisme que vous pouvez choisir d'utiliser ou non. Bien sûr, il y a des bonnes pratiques qui disent quand il est sage de les utiliser ... –