TCL:连接变量和字符串

TCL:连接变量和字符串,tcl,Tcl,假设变量“a”设置为12345: set a 12345 现在我如何设置一个新变量'b',它包含'a'的值和另一个字符串,比如9876 解决方法类似于 set a "12345" set u "9876" set b $a$u 但是我不想指定$u,而是希望使用直接字符串。您可以执行以下操作: set b ${a}9876 % set b [concat $a$u] 12349876 或者,假设b设置为空字符串或未定义: append b $a 9876 当$a较长时,调用append

假设变量“a”设置为12345:

set a 12345
现在我如何设置一个新变量'b',它包含'a'的值和另一个字符串,比如9876

解决方法类似于

set a "12345"
set u "9876"

set b $a$u
但是我不想指定
$u
,而是希望使用直接字符串。

您可以执行以下操作:

set b ${a}9876
% set b [concat $a$u]
12349876
或者,假设
b
设置为空字符串或未定义:

append b $a 9876

$a
较长时,调用
append
更有效(请参阅)。

其他选项是使用set命令。 自从 设定 给出a的值,我们可以用它来设置b的值,如下所示


set b[set a]9876

其他选项是使用concat命令,如下所示


设置b[concat$a\9876]

我不明白你说的直接字符串是什么意思。。。我不确定你是否想。。。 但是,如果需要12349876的值,可以执行以下操作:

set b ${a}9876
% set b [concat $a$u]
12349876
如果您希望$a或$u成为字符串的一部分,只需在所需变量之前添加反斜杠“\”。

从Tcl 8.6.2开始,有
字符串cat
可用于解决此问题

set b [string cat $a 9876]

或者,您可以使用
格式

set b[格式%s%s$a$u]

设置我的字符串“Hello”

附加myString“世界!”

放入“$myString”


你好,世界

嘿,特雷,回答得好。在这些情况下,使用双引号更好,还是没有任何优势?例如,
set b“${a}9876”
@Brian:Tcl不在乎,但如果它有更漂亮的格式,您可能会想这样做。如果您试图在某个内容中包含空格,则只需要进行某种分组,这取决于您是否还需要变量替换{}或“”可能需要这里还有
join
命令,但据我所知,这主要是针对带字符串的字符串的。@Raj要使用
join
命令,您需要创建一个列表,类似于
set b[join[list$a“9876”]”之类的东西。