我正在尝试从以下过程中打印信息。
主过程应该在 proc a1 和 proc a2 完成后等待并打印。 如果存在信息,Proc a1 将存储到一个变量中, Proc a2 将向同一个变量添加或存储信息。 如果可能的话,我不知道如何让它发挥作用。 请任何建议。
proc main { var } {
puts $var
}
proc a1 { var } {
upvar $var d1
set d1 [list 100=50 101=60]
}
proc a2 { var } {
upvar $var d2
set d2 [list 102=100 103=300]
}
如果可能的话,我不知道如何让它工作
定义过程是不够的……你实际上还需要调用过程! 此外,您对 a1 和 a2 的 proc 定义不能像您那样使用简单的一行字符串。您需要用换行符或分号分隔
upvar
和 set
命令。
# Proc definitions
proc main {var} {puts $var}
proc a1 {var} {
upvar $var d1
set d1 [list 100=50 101=60]
}
proc a2 {var} {
upvar $var d2
set d2 [list 102=100 103=300]
}
# Now call the procs
a1 foo
a2 foo
main $foo
虽然这是一组非常奇怪的过程。当
a2
在 a1
之后调用时,它设置的变量将覆盖任何先前的值。 a2
不是添加和新信息。