問題タブ [uplevel]

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 投票する
2 に答える
512 参照

perl - Perlの上位スコープで変数をローカライズする方法は?

AUTOLOADまたはその他のサブルーチン ディスパッチ手法を使用する Perl モジュールを開発しているときに、次のパターンに何度か遭遇しました。

これは正常に機能callerし、正しいスコープが表示されます。

今私がしたいのは、の実行中にローカルで$_等しいに設定することです。これは次のようになります。$self&$code

ラッピングを含むソリューションは、callerパフォーマンスと依存関係の問題により受け入れられません。したがって、それは2番目のオプションを除外しているようです.

最初に戻ると、 の新しい値が$_の範囲外に出ないようにする唯一の方法gotoは、変更をローカライズしない (実行可能なオプションではない) か、または のようなものを実装することuplevel_localですgoto_with_local

PadWalkerSub::UplevelScope::Upper、およびその他を含むあらゆる種類の順列を試してみましたが、適切なタイミングでクリーンアップし、ラップしないB::Hooks::EndOfScope堅牢なソリューションを思い付くことができませんでした。$_caller

この場合に機能するパターンを見つけた人はいますか?

(SO の質問:別のスタック フレームで Perl 変数をローカライズするにはどうすればよいですか?は関連していますが、保持することcallerは要件ではなく、最終的には別のアプローチを使用するという答えがあったため、この場合、その解決策は役に立ちません)

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

python - Python 2.5 には、Tcl のアップレベル コマンドに相当するものがありますか?

Python には Tcl のアップレベル コマンドに相当するものがありますか? ご存じない方のために説明すると、「uplevel」コマンドを使用すると、呼び出し元のコンテキストでコードを実行できます。Python では次のようになります。

ただし、変数を設定するだけではないため、辞書を変更するだけのソリューションを探しているわけではありません。どんなコードでも実行できるようにしたい。

0 投票する
4 に答える
1317 参照

bash - tclsh スクリプトを評価する方法は?

tclshは、TCL コマンドを含むシェルです。

TCLuplevelコマンドは指定された TCL スクリプトを評価しますが、tclsh スクリプト (bash コマンドを含むことができる) の評価に失敗します。

upleveltclsh スクリプトの類似物を入手するにはどうすればよいですか?


次の TCL スクリプトを検討してください。

これは一種の TCL シェルであるためtclsh main.tcl、入力するとプロンプトが表示され、インタラクティブセッションMyShell >にいるかのように動作します。ただし、非対話型セッションにあり、入力したものはすべてコマンドによって評価されます。したがって、ここでは、インタラクティブなtclsh セッションで実行できるように、bash コマンドを使用することはできません。たとえば、シェルから直接開くことはできません。また、機能しません。 tclsh tclshuplevelvimexec vim

私が欲しいのは、インタラクティブなセッションMyShell >のように振る舞うことです。tclsh私が単に使用できない理由tclshは、の最後の行にあるループですmain.tcl: I have to have that loop and everything must occur in that loop. また、そのループの各反復でいくつかのことを行う必要があるため、vwait.


これが解決策です。::unknown関数 を上書きするよりも良い解決策は見つかりませんでした。

アイデアは、評価を対話型セッションのものとして::unknown処理するように関数を変更することです。MyShelltclsh

::unknownシステムや tcl のバージョンによって異なる関数のコードを修正しているため、これは醜い解決策です。

これらの問題を回避する解決策はありますか?

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

namespaces - TCL 名前空間とスタック フレームの違いは何ですか?

Upvar は、コール スタックと呼ばれることもある別のスタック フレーム、または 別のスコープ内の変数へのリンクを作成します。

Upvar は、グローバル (または名前空間) 変数のエイリアスを作成するためにも使用されます2ただし、名前空間は、 namespace evalコマンドによってのみ作成されます。proc コマンドによって、新しいスタック フレームが作成されます。

ネームスペースとコール スタックは、TCL ネーミング コンテキストを変更できる 2 つの方法のようです。Upvar と Uplevel は、名前空間とコール スタックの両方で機能します。

私はそれを正しく理解しましたか?コール スタックと名前空間の直接的な比較はまだ見ていないので、質問します。

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

mysql - UPLEVEL 演算子の概念は何ですか?

私はデータベースの専門家ではなく、これまで MySQL データベースを扱ってきました。私は、、、、ステートメントに精通していSELECTます。また、ご存知のように、インターネットにはそれらに関する多くの情報があります。INSERTUPDATEDELETE

UPLEVEL最近、ステートメントという名前のことを聞きました。私はそれがどのような概念なのかわかりませんし、それについての良い参考文献も見つかりません。

ええと、それは正確には何ですか?