我如何从一个过程返回到一个更高的语境? 例如:如果proc X调用另一个调用第三个proc Z的proc Y - 有没有办法从Z直接返回X?
答案 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”那么 循环将在您的流程中创建..