gpt4 book ai didi

parameters - tcl - 如何保存进入 proc 的所有参数供以后重新使用?

转载 作者:行者123 更新时间:2023-12-02 08:46:27 24 4
gpt4 key购买 nike

我正在使用构成数据包内容的函数 (A)。该函数接受任意数量的参数。我希望实现另一个函数 (B),它形成由 (A) 形成的最后一个数据包。我希望通过在我上次与 (A) 一起使用的相同参数上运行 (A) 来做到这一点。诀窍是 (A) 使用类似

的东西接受未知数量的参数
proc example {first {second ""} args}

有没有简单的方法可以快速保存所有参数,然后稍后再次使用相同的参数调用 (A)?

最佳答案

最简单的方法是让 A 在运行时创建 B,这在 info level 0 的帮助下非常简单:

proc A {p q {r ...} args} {
# Make B which will call us *exactly* as we've just been called
proc B {} [list uplevel 1 [info level 0]]
# ... continue with normal processing ...
}

对此有一些注意事项(例如,如果您正在使用别名进行繁重的处理或复杂的跨命名空间工作)但是对于大多数代码——尤其是您想要这样做的那种东西——这不是什么大问题.


在 8.6 中,改用 proc B {} [list tailcall {*}[info level 0]]

关于parameters - tcl - 如何保存进入 proc 的所有参数供以后重新使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12159463/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com