TCL:回归更高层次?

发布于 2024-09-14 11:14:11 字数 87 浏览 5 评论 0原文

如何从过程返回到更高的上下文?
例如:如果过程 X 调用了另一个过程 Y,而该过程 Y 又调用了第三个过程 Z - 有没有办法从 Z 直接返回到 X ?

How can I return from a proc to a higher context?
For example: If proc X called another proc Y which called a third proc Z - is there a way to return from Z directly back to X ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

扶醉桌前 2024-09-21 11:14:11

从 8.5 开始,是的。 return 命令有一个 < code>-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 的可重用性,但那是你的事。

From 8.5 onwards, yes. The return command has a -level option which is used to do just that:

return -level 2 $someValue

Thus, for example:

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

produces this output:

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

Note that doing this reduces the reusability of Z, but that's your business.

不寐倦长更 2024-09-21 11:14:11

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

if You are call "x process" from "z proc" then
loop will create in the your process flow..

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文