TCL: concaténer une variable et une chaîne

supposons que nous avons une variable 'a' définie à 12345 :

set a 12345

maintenant, comment puis-je définir une nouvelle variable 'b' qui contient la valeur de 'a' et une autre chaîne dire 9876

palliatif est quelque chose comme

set a "12345"
set u "9876"

set b $a$u

mais je ne veux pas de spécifier $u au lieu de cela, je veux que la chaîne directe soit utilisée..

16
tcl
demandé sur Donal Fellows 2011-03-09 08:57:22

7 réponses

Vous pouvez faire:

set b ${a}9876

ou, en supposant que b est soit vide ou non défini:

append b $a 9876

L'appel à append est plus efficace lorsque les $a est longue (voir append doc).

33
répondu Trey Jackson 2011-03-09 06:46:20

autre option est d'utiliser la commande set. depuis définir un donne la valeur de a, on peut l'utiliser pour définir la valeur de b comme ci-dessous

b [set]9876

6
répondu vaichidrewar 2011-03-09 18:09:05

Ou,vous pouvez utiliser format

set b [format %s%s $a $u]

2
répondu Harry Lee 2014-12-17 08:12:46

L'autre option est d'utiliser la commande concat comme ci-dessous.

b [concat $a\9876]

0
répondu MANJUNATH MULAGE 2013-09-20 06:57:20

Je ne comprends pas ce que vous voulez dire par la chaîne directe... Je ne suis pas sûr si vous le souhaitez... Cependant, si vous voulez la valeur de 12349876 vous pouvez faire:

% set b [concat $a$u]
12349876

si vous voulez que $A ou $u fasse partie de la chaîne, ajoutez juste un antislash '\' avant la variable désirée.

0
répondu aLt 2014-11-18 18:06:58

À Partir De Tcl 8.6.2 là, il y a string cat qui peut être utilisé pour résoudre ce problème.

set b [string cat $a 9876]
0
répondu Donal Fellows 2014-12-13 08:25:28

set myString "Hello"

ajouter myString " monde!"

puts "$machaine"

Bonjour Tout Le Monde!

-2
répondu P Ekambaram 2015-05-25 11:04:29