我试图将值附加到数组中,如下所示,它不附加到值列表
while {[gets $fp line] != -1} {
if { [regexp {Path Group: (w+)} $line all group]} {
set hash($group) {}
} elseif {[regexp {(VIOLATED)s+(-[0-9]*.[0-9]*)} $line all slack]} {
puts "slack $slackn"
lappend hash($group) $slack
}
}
parray hash
数组哈希的输出只是迭代位的最后一个值,而不是列表
期待
名称{X Y Z}年龄{3 4 5}
set group {}
while {[gets $fp line] != -1} {
if { [regexp {Path Group: (w+)} $line all group]} {
} elseif {[regexp {(VIOLATED)s+(-[0-9]*.[0-9]*)} $line all slack]} {
puts "slack $slackn"
lappend hash($group) $slack
}
}
parray hash
- 不需要在每次匹配时设置
hash($group)
,因为这会重置hash($group)
的内容。 - 在
lappend hash($group)
中,如果变量不存在,则自动创建。