如何在Tcl中简洁地连接字符串?

时间:2009-09-15 23:05:22

标签: string tcl concatenation

我可以轻松地连接两个变量foo和bar,如下所示:“$ {foo} $ {bar}”。

但是,如果我不想将中间结果放入变量中,我怎样才能轻松连接调用某些proc的结果?

长手写道:

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

有没有办法在不引入临时变量foo和bar的情况下创建结果?

这样做对我来说是不正确的:

concat [myFoo $arg] [myBar $arg]

因为它引入了两个结果之间的空格(用于列表目的),如果不存在的话。

似乎'string concat'就是我想要的,但它似乎不在我的Tcl解释器版本中。

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

String concat是关于这里写的:

3 个答案:

答案 0 :(得分:29)

您可以在双引号字符串中嵌入命令,而无需临时变量:

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

答案 1 :(得分:11)

如果您多次这样做,在循环中或由某些中间代码分隔,您可能还会考虑:

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

答案 2 :(得分:4)

只需将其写成一个没有多余空格的单词:

[myFoo $arg][myBar $arg]

Tcl在替换后将其视为单个单词,无论两个子命令的结果如何。