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

Wil*_*mKF 21 string tcl concatenation

我可以很容易地连接两个变量foo和bar,如下所示:"$ {foo} $ {bar}".

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

这将写得很长:

set foo [myFoo $arg]
set bar [myBar $arg]
set result "${foo}${bar}"
Run Code Online (Sandbox Code Playgroud)

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

这样做对我的目的不正确:

concat [myFoo $arg] [myBar $arg]
Run Code Online (Sandbox Code Playgroud)

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

看起来像'string concat'就是我想要的,但它似乎不在我的Tcl解释器版本中.

string concat [myFoo $arg] [myBar $arg]
Run Code Online (Sandbox Code Playgroud)

字符串连接在这里写:

Bry*_*ley 29

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

set result "[myFoo $arg][myBar $arg]"
Run Code Online (Sandbox Code Playgroud)


小智 11

如果您多次执行此操作,循环执行或由某些中间代码分隔,您可能还会考虑:

set result ""
append result [myFoo $arg]
append result [myBar $arg]
append result [myBaz $arg]
Run Code Online (Sandbox Code Playgroud)