Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
有没有可靠的方法proc通过引用传递参数(不使用upvar)?
proc
upvar
不。如果您希望能够修改过程内部的值并使该修改在外部可见,则不会。
Tcl 的过程的参数严格按值传递(实现实际上是通过不可变引用传递的,这对于复杂结构来说更便宜,并且在幕后使用了写时复制修改技术;它看起来像按值传递)所以你不能影响外面的世界,除非用类似的东西把它带进来upvar。有时,您传入的内容可能是可修改条目的句柄(例如,类实例、DOM 节点),然后您可以从外部观察到差异,但这实际上并没有修改传递的内容本身(句柄),而是它所引用的东西。