Tcl 如何通过引用将参数传递给proc?
是否有任何可靠的方法通过引用将参数传递给Tcl 如何通过引用将参数传递给proc?,tcl,pass-by-reference,Tcl,Pass By Reference,是否有任何可靠的方法通过引用将参数传递给proc(不使用upvar)?否。如果您希望能够在过程内部修改值,并使修改在外部可见,则不需要 Tcl的过程严格按照值传递参数(实现实际上是通过不可变引用传递的,这对于复杂结构来说更便宜,并且在幕后使用了一种写时拷贝修改技术;它看起来像是通过值传递的)因此,你不能影响外部世界,除非用类似于upvar的东西把它带进来。有时,您传入的内容可能是可修改条目(例如,类实例、DOM节点)的句柄,然后您可以观察到与外部的差异,但这并不是实际修改传入的内容(句柄)而是它
proc
(不使用upvar
)?否。如果您希望能够在过程内部修改值,并使修改在外部可见,则不需要
Tcl的过程严格按照值传递参数(实现实际上是通过不可变引用传递的,这对于复杂结构来说更便宜,并且在幕后使用了一种写时拷贝修改技术;它看起来像是通过值传递的)因此,你不能影响外部世界,除非用类似于upvar
的东西把它带进来。有时,您传入的内容可能是可修改条目(例如,类实例、DOM节点)的句柄,然后您可以观察到与外部的差异,但这并不是实际修改传入的内容(句柄)而是它所引用的内容。否。如果您希望能够在过程内部修改值,并使该修改在外部可见,则不能
Tcl的过程严格按照值传递参数(实现实际上是通过不可变引用传递的,这对于复杂结构来说更便宜,并且在幕后使用了一种写时拷贝修改技术;它看起来像是通过值传递的)因此,你不能影响外部世界,除非用类似于upvar
的东西把它带进来。有时,您传入的内容可能是可修改条目(例如,类实例、DOM节点)的句柄,然后您可以观察到与外部的差异,但这实际上并不是修改传入的内容(句柄),而是修改它引用的内容