web-dev-qa-db-fra.com

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

Supposons que nous avons une variable 'a' définie sur 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

la solution de contournement est quelque chose comme

set a "12345"
set u "9876"

set b $a$u

mais je ne veux pas spécifier $u à la place, je veux que la chaîne directe soit utilisée ..

16
user651006

Tu peux faire:

set b ${a}9876

ou, en supposant que b est défini sur la chaîne vide ou n'est pas défini:

append b $a 9876

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

33
Trey Jackson

une autre option consiste à utiliser la commande set. puisque set a donne une valeur de a que nous pouvons utiliser pour définir la valeur de b comme ci-dessous

set b [set a] 9876

6
vaichidrewar

Ou vous pouvez utiliser format

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

4
Harry Lee

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

set b [string cat $a 9876]
1
Donal Fellows

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

% set b [concat $a$u]
12349876

Si vous voulez que $ a ou $ u fasse partie de la chaîne, ajoutez simplement une barre oblique inverse '\' avant la variable souhaitée.

0
aLt

Une autre option consiste à utiliser la commande concat comme ci-dessous.

set b [concat $ a\9876]

0
MANJUNATH MULAGE