我正在尝试设置这样的变量
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.
这是语法错误吗?声明变量是一种糟糕的编码风格吗?有更好的方法吗?
答案 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