>让一些字典如下:
set d0 [dict create key1 value1]
set d1 [dict create key1 value1]
我现在需要获取每个字典的value1
,循环说:
for {set i 0} {$i < 2} {incr i} {
dict get $d$i
}
我的问题在于循环的第二行,其中我无法正确连接和获取字典值,此结构需要$
来调用字典名称,而不是dict append
命令,我尝试使用{}
、[]
、concat
或join
无济于事,当然我错过了一些东西或误解了 Tcl 应该编写的方式。
您的直接解决方案是:
dict get [set d$i] ...
由于$
在很大程度上是单参数set
命令的限制性语法糖。
但是考虑将字典放在一个数组中。
set d(0) [dict create key1 value1]
set d(1) [dict create key1 value1]
for {set i 0} {$i < 2} {incr i} {
dict get $d($i) ...
}
语法要好得多!