我在程序中的tcl 8.4中构建了一个字典。如何在另一个过程中使用构造的字典。我添加了一个示例代码,说明如何在tcl 8.4中构建字典。我知道tcl 8.5内置'dict'选项,但我必须使用tcl 8.4。
proc a {} {
set test(key1) "value1"
set test(key2) "value2"
lappend keylist "key1"
lappend keylist "key2"
foreach key $keylist {
puts "value of $key is $test($key)"
}
}
所以上面提到的程序会构建一个字典。但是由于tcl 8.4解释器将每一行“$ test($ key)”解释为一个单独的变量,我如何将其设置为全局,以便我可以在另一个过程中使用它。
答案 0 :(得分:3)
您可以使用global
命令将变量或数组设为全局变量。
例如:
proc a {} {
global test
set test(key1) "value1"
set test(key2) "value2"
lappend keylist "key1"
lappend keylist "key2"
foreach key $keylist {
puts "value of $key is $test($key)"
}
}
a
# Outputs
# value of key1 is value1
# value of key2 is value2
# Now use them in another proc...
prob b {} {
global test
puts $test(key1)
puts $test(key2)
}
b
# Outputs
# value1
# value2
答案 1 :(得分:0)
如果您能够返回字典,则可以将其作为参数传递给另一个proc。 (本来希望将其放在评论部分,但我没有所需的代表)