记录一些Tcl中array的操作。
proc array_diff {aa ab} {
set size_a [array size $aa]
set size_b [array size $ab]
if {$size_a != $size_b} {
log info "array size diff: $size_a != $size_b"
return 0
}
foreach {k v} [array get $aa *] {
set pairs [array get $ab $k]
if {[llength $pairs]==0} {
log info "array key diff: $aa\($k\)"
return 0
} elseif {[lindex $pairs 1] != $v} {
log info "array value diff for key ($k): $v != [lindex $pairs 1]"
return 0
}
}
return 1
}