Как кратко объединить строки в Tcl?

Я могу легко объединить две переменные, foo и bar, следующим образом в Tcl: "${foo}${bar}".

Однако, если я не хочу помещать промежуточный результат в переменную, как я могу легко объединить результаты вызова какого-либо процесса?

Длинным почерком это будет написано:

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

Есть ли способ создать результат без введения временных переменных foo и bar?

Делать это неправильно для моих целей:

concat [myFoo $arg] [myBar $arg]

поскольку он вводит пробел между двумя результатами (для целей списка), если он не существует.

Похоже, что "string concat" - это то, что я хочу, но, похоже, его нет в моей версии интерпретатора Tcl.

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

О String concat написано здесь:


person WilliamKF    schedule 15.09.2009    source источник


Ответы (3)


Вы можете вставлять команды в строку в двойных кавычках без необходимости использования временной переменной:

set result "[myFoo $arg][myBar $arg]"
person Bryan Oakley    schedule 15.09.2009

Если вы делаете это много раз, в цикле или разделены каким-то промежуточным кодом, вы также можете подумать:

set result ""
append result [myFoo $arg]
append result [myBar $arg]
append result [myBaz $arg]
person ramanman    schedule 16.09.2009

просто напишите это как слово без лишних пробелов:

[myFoo $arg][myBar $arg]

Tcl видит это как одно слово после подстановки, независимо от результата двух подкоманд.

person SingleNegationElimination    schedule 15.09.2009