【发布时间】:2015-12-31 22:11:20
【问题描述】:
在 Julia 中,有什么方法可以获取传递给函数的名称?
x = 10
function myfunc(a)
# do something here
end
assert(myfunc(x) == "x")
我需要使用宏还是有提供自省的本机方法?
【问题讨论】:
-
不,这是不可能的。我不知道有任何主流语言是一个好主意(甚至可以使用)。这可能有助于澄清您最终要解决的问题...
-
在 Matlab 或 Octave IDE 中定义变量时,当前模块/作用域中的变量会显示在侧面板中,这有助于了解工作空间中存在哪些变量。在 julia 中,可以通过 names(current_modules()) 获取所有变量
-
一个接受函数定义的宏将使这成为可能(通过插入从参数表达式计算的本地定义)
-
@ejang 那些自省功能是在函数体之外实现的,例如通过在解析或语法降低的某个阶段挂钩,或者通过生成有关可以发现和显示的函数的元信息调试器(例如,DWARF)。
标签: julia