Como cordas concatenar concisa em Tcl?
-
07-07-2019 - |
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:
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.