TCL请帮帮我

问题描述 投票:0回答:1

我正在尝试从以下过程中打印信息。

主过程应该在 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]
}

如果可能的话,我不知道如何让它工作

tcl
1个回答
0
投票

定义过程是不够的……你实际上还需要调用过程! 此外,您对 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
不是添加和新信息。

© www.soinside.com 2019 - 2024. All rights reserved.