6

「レキシカル変数」という用語は、主にクロージャーのコンテキストで数回見たことがあります。Paul Graham は、Lisp に関する彼の著書で、 let 式を使用して定義された変数を参照する用語を使用しています。

レキシカルスコープは静的スコープの別名であることを理解しています。レキシカル変数は、プログラム単位の参照環境で見える単なる変数ですか?

このホリデー シーズンに、この言葉を使って友人や家族に感銘を与えたいと思っています。誰か助けてくれませんか?

4

2 に答える 2

4

レキシカル変数は、そのレキシカル スコープ内でのみ (名前で) 参照できる変数です。つまり、変数のスコープは、プログラムの実行のダイナミクスではなく、プログラムのテキストによって定義されます。変数とそれにバインドされた値は、レキシカル スコープを超えるエクステント (寿命) を持つ場合があります。たとえば、クロージャでキャプチャされた場合です。

範囲と範囲については、こちらの説明を参照してください。

于 2008-12-19T23:03:52.133 に答える
0

レキシカル変数はプログラム単位の参照環境で可視ですが、プログラム単位の参照環境で可視のすべての変数が必ずしもレキシカル変数であるとは限りません。

基本的に、レキシカル変数は、それが定義されているスコープに固有のものです。Perl のような言語では、基本的に 2 つの名前空間が互いに重なり合ってマスクされています: 基礎となる動的パッケージ名前空間と、オーバーレイされたレキシカル名前空間です。したがって、 $foo は、レキシカルに宣言されているかどうかだけに応じて、どちらかを参照できます。

于 2008-12-19T17:47:20.667 に答える