2009-09-15 5 views
21

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

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

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

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

Есть ли какой-нибудь способ, чтобы создать результат, не вводя временные переменные Foo и бар?

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

concat [myFoo $arg] [myBar $arg] 

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

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

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

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

ответ

29

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

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

просто написать его как слово без дополнительных пространств:

[myFoo $arg][myBar $arg] 

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

10

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

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

 Смежные вопросы

  • Нет связанных вопросов^_^