首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TCL:更新"dict with“中的dict

TCL:更新"dict with“中的dict
EN

Stack Overflow用户
提问于 2015-06-17 14:45:01
回答 1查看 374关注 0票数 1

我想使用dict with更新字典,但它似乎没有更新任何值。示例:

代码语言:javascript
复制
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]"

它打印:

代码语言:javascript
复制
PORT1=X
PORT2=X

如何使用dict更新"reset“的值?

EN

回答 1

Stack Overflow用户

发布于 2015-06-17 15:59:34

我不确定你能不能像那样嵌套它们。试一试

代码语言:javascript
复制
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}]
        }
    }
}

文档:dictexprforeachifset

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30884104

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档