如何通过引用传递参数到proc?

时间:2013-06-01 08:35:43

标签: tcl pass-by-reference

有没有可靠的方法通过引用将参数传递给proc(不使用upvar)?

1 个答案:

答案 0 :(得分:4)

否。 如果您希望能够修改程序中的值并在外部显示该修改,则不会。

Tcl的程序的参数严格按值传递(实现实际上通过 immutable 引用,这对于复杂的结构来说更便宜,并且使用写时复制封面下的修改技术;看起来像是按值传递),所以你不能影响外面的世界,除非把它带进upvar之类的东西。有时,您传入的内容可能是可修改条目的句柄(例如,类实例,DOM节点),然后您可以观察到与外部的差异,但实际上并没有修改传递的内容本身(句柄),而是它引用的东西。