String 在TCL中包含变量的字符串连接

String 在TCL中包含变量的字符串连接,string,tcl,String,Tcl,我试图在TCL中完成一些非常简单的事情。即字符串连接,其中一些(不是全部)字符串被分配给变量。比如说 set string1 fragilistic set string2 docious puts [concat supercali $string1 expiali $string 2] 这导致了超级心脏病的脆弱性。我真的不想在两者之间留有空间,所以我想做的是 puts [concat supercali$string1expiali$string 2] 但这将返回一个错误。在没有中间空

我试图在TCL中完成一些非常简单的事情。即字符串连接,其中一些(不是全部)字符串被分配给变量。比如说

set string1 fragilistic
set string2 docious

puts [concat supercali $string1 expiali $string 2]
这导致了超级心脏病的脆弱性。我真的不想在两者之间留有空间,所以我想做的是

puts [concat supercali$string1expiali$string 2]

但这将返回一个错误。在没有中间空格的情况下,如何将字符串与分配给TCL中变量的字符串连接起来?

您有两个选项。Tcl的经典做法是使用大括号分隔的变量名:

puts supercali${string1}expiali${string2}
从Tcl 8.6开始,还有命令
string cat
(引入该命令是为了使
lmap
工作得更好):

低级行为应该是相同的

puts [string cat supercali $string1 expiali $string2]