1

proc(を使用せずに) 参照によってパラメーターを渡す確実な方法はありますupvarか?

4

1 に答える 1

4

いいえ。プロシージャ内で値を変更し、その変更を外部に表示できるようにしたい場合は、そうではありません。

Tcl の手続きでは引数が厳密に値渡しされます (実装は実際には不変の参照で渡されます。これは複雑な構造では安価であり、内部ではコピー オン ライト変更手法を使用します。値渡しのように見えます)。のようなもので持ち込まない限り、外の世界に影響を与えることはできませんupvar。渡すものは、変更可能なエントリ (クラス インスタンス、DOM ノードなど) へのハンドルである場合があり、その場合、外部との違いを観察できますが、それは渡されたものを実際に変更するわけではありません。それ自体 (ハンドル) ではなく、それが参照するものです。

于 2013-06-01T08:51:43.157 に答える