1

考虑以下函数声明(在这种情况下非常简单,但问题当然适用于一般情况):

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

鉴于通过运行时反射为 f 获得的树,是否有任何内置支持

a) 获取变量声明?

b) 它们的相关范围?

我可以看到可以通过编写自定义树遍历器来获得 a),然后 b) 通过从声明点执行进一步的遍历来获得。

然而,这显然是一项重要且容易出错的工作。

特别是,我看到反射 API 包含一个 Scope 类,但我无法确定这在提供 b) 中是否起任何作用。

4

0 回答 0