1

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

4

1 回答 1

4

。如果您希望能够修改过程内部的值并使该修改在外部可见,则不会。

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

于 2013-06-01T08:51:43.157 回答