2011-03-09 26 views
14

Asumamos que tenemos una variable 'a' se establece en 12345:TCL: concatenar una variable y una cadena

set a 12345 

Ahora ¿Cómo se configura un nuevo 'b' variable que contiene el valor de 'a' y otra cadena decir 9876

solución es algo así como

set a "12345" 
set u "9876" 

set b $a$u 

pero no quiero especificar $u lugar quiero la cadena directa a utilizar ..

Respuesta

31

Usted puede hacer:

set b ${a}9876 

o, en el supuesto b está bien establecido en la cadena vacía o no definido:

append b $a 9876 

La llamada a append es más eficiente cuando $a es larga (ver append doc)

+0

Hola Trey, buena respuesta. ¿Es mejor usar comillas dobles en estos casos, o no tiene ninguna probabilidad? P.ej. 'set b" $ {a} 9876 "' – TrojanName

+3

@Brian: a Tcl no le importa, pero es posible que desee hacerlo si se utiliza un formato más bonito. –

+2

solo requerirías agrupación de algún tipo si estuvieras tratando de concaturar algo con un espacio en él, dependiendo de si también necesitas la sustitución de variable {} o "" sería necesario –

6

Otra opción es usar el comando set. desde establecer un da un valor de que podemos utilizarla para configurar el valor de b, como a continuación

conjunto b [ajustado a] 9876

0

Otra opción es utilizar el comando concat como a continuación.

conjunto b [concat $ a \ 9876]

0

que no entiendo lo que quiere decir la cadena directa ... No estoy seguro de si quieres ... Sin embargo, si desea que el valor 12349876 de que puede hacer:

% set b [concat $a$u] 
12349876 

Si desea $ ao $ u para ser parte de la cadena, basta con añadir una barra invertida '\' antes de la variable deseada.

0

De Tcl 8.6 0,2 en adelante, no es string cat que se puede utilizar para resolver este problema.

set b [string cat $a 9876] 
2

O bien, puede utilizar format

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

-2

conjunto miCadena "Hola"

append miCadena "World!"

pone "$ mystring"

¡Hola mundo!

Cuestiones relacionadas