Tcl通过连接命令和字符串来设置变量

时间:2013-11-08 07:42:11

标签: tcl variable-declaration

我正在尝试设置这样的变量

puts [lindex $bar 0]  # prints bar0
set foo $[lindex $bar 0]_someString

但是打印foo变量没有得到foo中的值:

puts $foo  # prints $bar0_someString
# but I want the value in bar0_someString varialbe
# not the variable name.

这是语法错误吗?声明变量是一种糟糕的编码风格吗?有更好的方法吗?

2 个答案:

答案 0 :(得分:5)

请注意,$x只是set x的快捷方式。所以你也可以这样做:

set foo [set [lindex $bar 0]_someString]

答案 1 :(得分:-1)

正确的语法应该是:

set foo [expr $[lindex $bar 0]_someString]

一个正在运行的例子:

% set bar {a b c}
a b c
% set a_someString tttttt
tttttt
% set foo [expr $[lindex $bar 0]_someString]
tttttt
% puts $foo
tttttt