我想使用dict with更新字典,但它似乎没有更新任何值。示例:
set test1 [dict create]
dict set test1 INST1 ports PORT1 type Q
dict set test1 INST1 ports PORT1 reset X
dict set test1 INST1 ports PORT2 type Qbar
dict set test1 INST1 ports PORT2 reset X
dict for {id data} $test1 {
set resetVal 0
dict with data {
dict for {portName portInfo} $ports {
dict with portInfo {
if {$type == "Q"} {
set reset $resetVal
} elseif {$type == "Qbar"} {
set reset [expr $resetVal ^ 1]
}
}
}
}
}
puts "PORT1=[dict get $test1 INST1 ports PORT1 reset]"
puts "PORT2=[dict get $test1 INST1 ports PORT2 reset]"它打印:
PORT1=X
PORT2=X如何使用dict更新"reset“的值?
发布于 2015-06-17 15:59:34
我不确定你能不能像那样嵌套它们。试一试
set resetVal 0
foreach port {PORT1 PORT2} {
dict with test1 INST1 ports $port {
if {$type eq "Q"} {
set reset $resetVal
} elseif {$type eq "Qbar"} {
set reset [expr {$resetVal ^ 1}]
}
}
}文档:dict、expr、foreach、if、set
https://stackoverflow.com/questions/30884104
复制相似问题