TCL:回到更高的水平?

时间:2010-08-16 08:39:55

标签: tcl

我如何从一个过程返回到一个更高的语境? 例如:如果proc X调用另一个调用第三个proc Z的proc Y - 有没有办法从Z直接返回X?

2 个答案:

答案 0 :(得分:9)

从8.5开始,是的。 return命令有-level选项,用于执行此操作:

return -level 2 $someValue

因此,例如:

proc X {} {
    puts "X - in"
    Y
    puts "X - out"
}
proc Y {} {
    puts "Y - in"
    Z
    puts "Y - out"
}
proc Z {} {
    puts "Z - in"
    return -level 2 "some value"
    puts "Z - out"
}
X

生成此输出:

X - in
Y - in
Z - in
X - out

请注意,这样做会降低Z的可重用性,但这是您的业务。

答案 1 :(得分:0)

如果你是从“z proc”调用“x process”那么 循环将在您的流程中创建..