1

次の関数宣言を考えてみましょう (この場合はかなり些細なことですが、もちろん問題は一般的なケースにも当てはまります)。

def f( x : Int ) = { val y = 1; val z = 2; x * y * z }

ランタイム リフレクションによって f に対して取得された Tree を考えると、組み込みのサポートはありますか?

a) 変数宣言を取得していますか?

b) 関連するスコープ

a) カスタム ツリー トラバーサーを記述し、b) 宣言の時点からさらにトラバーサルを実行することで取得できることがわかります。

ただし、これは明らかに重要で、エラーが発生しやすい作業です。

特に、リフレクション API には Scope クラスが含まれていることがわかりますが、これが b) を提供する上で何らかの役割を果たすかどうかを判断できません。

4

0 に答える 0