問題タブ [upvar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
1567 参照

tcl - TCL の upvar 0 と upvar 1 の違い

upvar 0とTCLの違いupvar 1、リアルタイムでの使用方法を教えてください。親切に、誰かが例を挙げて説明すると、より明確になります。

0 投票する
2 に答える
224 参照

tcl - Tcl upvar の問題

(上向きのスタックで) upvar を使用して変数を変更しようとしていますが、変数の値は変数名ではなくプロシージャに渡されます。

渡されたものを変更することはできません。これは、プログラムで既に広く実装されているためです。

ファイル名を何らかの方法で変更する方法はありますか?

このコードは、ファイルの新しい名前ではなく、古い名前を出力します。

0 投票する
1 に答える
188 参照

namespaces - 予想される TCL: upvar と名前空間変数のパフォーマンス

仕様/実装によって、名前空間変数へのアクセスとupvarへのアクセスの間に予想される違いはありますか。コールバック関数を使用する必要があります。引数をそのまま渡すことはできません。経験的に、upvar が勝ちます。しかし、すべての合理的なケースで、それは期待されていますか? ありがとう。

0 投票する
0 に答える
42 参照

tcl - Tcl: すべてのレベルで変数を検索

私の質問の背景: エラー状況を特定するのに役立つ追加メッセージを書き出すエラー手順を書きたいと思います。この追加情報が提供されているコード部分と提供されていないコード部分があります。私の考えは:

  • グローバル メッセージ変数messageを空の文字列に設定する
  • messageエラーを引き起こす可能性のあるプロシージャを呼び出す前に、ローカル メッセージ変数を作成します。
  • エラー手順: 変数のすべてのレベルを下方向に検索しmessage、最初に見つかった値を取得します

グローバルmessage変数を設定して、常にこれにアクセスすることもできますが、後でリセットする必要があります (設定されていない他の部分でエラーメッセージが表示されるのを防ぐためmessage)。

私はsearchVar手順を書きました:

ここにいくつかのテストコードがあります:

を与える

これにより、目的の動作が得られます。 の値messageは、最後に定義されたものです (呼び出し順序に関して)。

私の質問は次のとおりです。よりコンパクトな、または「標準的な」ソリューションはありsearchVarますか? それとも、問題全体に対するより洗練された解決策ですか?