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

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

长手这会写成:

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

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

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

concat [myFoo $arg] [myBar $arg]

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

似乎“字符串连接”就是我想要的,但它似乎不在我的 Tcl 解释器版本中。

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

字符串连接是这样写的:

有帮助吗?

解决方案

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

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

其他提示

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

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

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

[myFoo $arg][myBar $arg]

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top