Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在Tcl中简洁地连接字符串?_String_Tcl_Concatenation - Fatal编程技术网

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

String 如何在Tcl中简洁地连接字符串?,string,tcl,concatenation,String,Tcl,Concatenation,我可以很容易地连接两个变量foo和bar,如下在Tcl中所示:${foo}${bar} 但是,如果我不想将中间结果放入变量中,如何轻松地连接调用某个proc的结果 长话短说,应该这样写: set foo [myFoo $arg] set bar [myBar $arg] set result "${foo}${bar}" 有没有办法在不引入临时变量foo和bar的情况下创建结果 就我的目的而言,这样做是不正确的: concat [myFoo $arg] [myBar $arg] 因为它在两个

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

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

长话短说,应该这样写:

set foo [myFoo $arg]
set bar [myBar $arg]
set result "${foo}${bar}"
有没有办法在不引入临时变量foo和bar的情况下创建结果

就我的目的而言,这样做是不正确的:

concat [myFoo $arg] [myBar $arg]
因为它在两个结果之间引入了一个空格(用于列表目的),如果其中一个结果不存在

看起来‘stringconcat’是我想要的,但在我的Tcl解释器版本中似乎没有

string concat [myFoo $arg] [myBar $arg]
字符串concat写在这里:


只需将其写成一个单词,不需要额外空格:

[myFoo $arg][myBar $arg]

Tcl将其视为替换后的单个单词,而不管两个子命令的结果如何。

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

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

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

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