Ответ 1
Вы можете вставлять команды в строку с двумя кавычками без необходимости в временной переменной:
set result "[myFoo $arg][myBar $arg]"
Я могу легко объединить две переменные, 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 написана здесь:
Вы можете вставлять команды в строку с двумя кавычками без необходимости в временной переменной:
set result "[myFoo $arg][myBar $arg]"
Если вы делаете это много раз, в цикле или разделены некоторым промежуточным кодом, вы также можете рассмотреть:
set result ""
append result [myFoo $arg]
append result [myBar $arg]
append result [myBaz $arg]
просто напишите это как слово без лишних пробелов:
[myFoo $arg][myBar $arg]
Tcl видит это как одно слово после подстановки, независимо от результата двух подкоманд.