Pergunta

Eu posso facilmente concatenar duas variáveis, foo e bar, como segue em Tcl: "$ {foo} $ {bar}"

.

No entanto, se eu não quiser colocar um resultado intermediário em uma variável, como posso facilmente concatenar os resultados de chamar alguns proc?

Long lado isso seria escrito:

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

Existe alguma maneira para criar resultado sem introduzir as variáveis ??temporárias Foo e bar?

Fazer isso é incorreto para os meus propósitos:

concat [myFoo $arg] [myBar $arg]

, pois introduz um espaço entre os dois resultados (para fins de lista) se não existir.

Parece que 'concat string' seria o que eu quero, mas não parece estar na minha versão do interpretador Tcl.

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

Cordas concat é escrito sobre aqui:

Foi útil?

Solução

Você pode incorporar comandos dentro de uma string com aspas duplas sem a necessidade de uma variável temporária:

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

Outras dicas

Se você está fazendo isso muitas vezes, em um loop, ou separados por um código intermediário, você pode também considerar:

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

apenas escrevê-lo como uma palavra sem espaços extras:

[myFoo $arg][myBar $arg]

Tcl vê isso como uma única palavra após a substituição, independentemente do resultado das duas subcommands.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top