1

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

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.

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

4

2 回答 2

5

Remember that $x is just a shortcut for set x. So you can also do this:

set foo [set [lindex $bar 0]_someString]
于 2013-11-08T08:44:05.473 回答
-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
于 2013-11-08T07:52:26.837 回答