问题描述
我试图获取一个变量值,该变量名由字符串“ a”和迭代器“ i”组成(在这个简短的示例中,我跳过了循环)。我试图用concat和append,用[]和“”来做,但没有任何效果。这个问题有解决方案吗?
set b0 0
set i 0
set a$i $b$i (here is my problem)
puts $a$i
puts应该显示为“ 0”
解决方法
要从已计算名称的变量中读取,请仅将set
与一个参数一起使用:
set a$i [set b$i]
puts [set a$i]
(从实际意义上讲,$
是调用这种形式的set
的语法简写;实际上,$
的语法较新。)
但是请改用数组
在这种情况下,几乎可以肯定,最好重写代码以使用关联数组。
set b(0) 0
set i 0
set a($i) $b($i)
puts $a($i)