Подтвердить что ты не робот

Как сжато конкатенировать строки в Tcl?

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

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

Длинная рука будет написана:

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

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

Выполнение этого неверно для моих целей:

concat [myFoo $arg] [myBar $arg]

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

Кажется, что "строка concat" будет тем, что я хочу, но, похоже, это не в моей интерпретаторе Tcl.

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

Строка concat написана здесь:

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

[myFoo $arg][myBar $arg]

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