2009-09-15 48 views
21

Puedo concatenar fácilmente dos variables, foo y barra, de la siguiente manera en Tcl: "$ {foo} $ {bar}".Cómo conciso concatenar cadenas en Tcl?

Sin embargo, si no quiero poner un resultado intermedio en una variable, ¿cómo puedo concatenar fácilmente los resultados de llamar a algún proceso?

mano Long este se escribiría:

set foo [myFoo $arg] 
set bar [myBar $arg] 
set result "${foo}${bar}" 

¿Hay alguna manera de crear resultado sin introducir el foo variables temporales y la barra?

Hacer esto no es correcto para mis propósitos:

concat [myFoo $arg] [myBar $arg] 

ya que introduce un espacio entre los dos resultados (para los propósitos de la lista), si no existe uno.

Parece que 'string concat' sería lo que quiero, pero no parece estar en mi versión del intérprete Tcl.

string concat [myFoo $arg] [myBar $arg] 

cadena concat está escrito de aquí:

Respuesta

29

Puede incrustar comandos dentro de una cadena entre comillas dobles sin la necesidad de una variable temporal:

set result "[myFoo $arg][myBar $arg]" 
4

acaba de escribir como una palabra sin espacios adicionales:

[myFoo $arg][myBar $arg] 

Tcl ve esto como una sola palabra después de la sustitución, independientemente del resultado de f los dos subcomandos.

10

Si usted está haciendo esto muchas veces, en un bucle, o separados por un código intermedio, que podría también considere:

set result "" 
append result [myFoo $arg] 
append result [myBar $arg] 
append result [myBaz $arg] 
Cuestiones relacionadas