proc
(を使用せずに) 参照によってパラメーターを渡す確実な方法はありますupvar
か?
質問する
1810 次
1 に答える
4
いいえ。プロシージャ内で値を変更し、その変更を外部に表示できるようにしたい場合は、そうではありません。
Tcl の手続きでは引数が厳密に値渡しされます (実装は実際には不変の参照で渡されます。これは複雑な構造では安価であり、内部ではコピー オン ライト変更手法を使用します。値渡しのように見えます)。のようなもので持ち込まない限り、外の世界に影響を与えることはできませんupvar
。渡すものは、変更可能なエントリ (クラス インスタンス、DOM ノードなど) へのハンドルである場合があり、その場合、外部との違いを観察できますが、それは渡されたものを実際に変更するわけではありません。それ自体 (ハンドル) ではなく、それが参照するものです。
于 2013-06-01T08:51:43.157 に答える