我可以轻松地连接两个变量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是关于这里写的:
答案 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在替换后将其视为单个单词,无论两个子命令的结果如何。