TCL: объединить переменную и строку - PullRequest
17 голосов
/ 09 марта 2011

Предположим, у нас есть переменная 'a', установленная в 12345:

set a 12345

Теперь, как мне установить новую переменную 'b', которая содержит значение 'a' и другую строку, скажем, 9876

обходной путь - это что-то вроде

set a "12345"
set u "9876"

set b $a$u

но я не хочу указывать $u вместо этого я хочу использовать прямую строку ..

Ответы [ 7 ]

33 голосов
/ 09 марта 2011

Вы можете сделать:

set b ${a}9876

или, предполагая, что b либо установлена ​​в пустую строку, либо не определена:

append b $a 9876

Вызов appendэффективен, когда $a длинный (см. append doc ).

6 голосов
/ 09 марта 2011

Другой вариант - использовать команду set.так как установка a дает значение a, мы можем использовать его для установки значения b, как показано ниже

4 голосов
/ 17 декабря 2014

Или , вы можете использовать format

set b [format %s%s $a $u]

1 голос
/ 13 декабря 2014

Начиная с Tcl 8,6 .2 и далее, string cat может использоваться для решения этой проблемы.

set b [string cat $a 9876]
0 голосов
/ 25 мая 2015

set myString "Hello"

append myString "World!"

помещает "$ myString"

Hello World!

0 голосов
/ 18 ноября 2014

Я не понимаю, что вы имеете в виду, прямая строка ... Я не уверен, если вы хотите ... Однако, если вы хотите значение 12349876, вы можете сделать:

% set b [concat $a$u]
12349876

Если вы хотите, чтобы $ a или $ u были частью строки, просто добавьте обратную косую черту '\' перед желаемой переменной.

0 голосов
/ 20 сентября 2013

Другой вариант - использовать команду concat, как показано ниже.

set b [concat $ a \ 9876]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...