gpt4 book ai didi

julia introspection - 获取传递给函数的变量名称

转载 作者:行者123 更新时间:2023-12-04 13:22:39 28 4
gpt4 key购买 nike

在 Julia 中,有没有办法获取传递给函数的名称?

x = 10
function myfunc(a)
# do something here
end
assert(myfunc(x) == "x")

我需要使用宏还是有提供自省(introspection)的 native 方法?

最佳答案

您可以使用宏获取变量名称:

julia> macro mymacro(arg)
string(arg)
end

julia> @mymacro(x)
"x"

julia> @assert(@mymacro(x) == "x")

但正如其他人所说,我不确定你为什么需要它。

宏在编译期间对 AST(代码树)进行操作, x作为符号 :x 传递到宏中.您可以将符号转换为字符串,反之亦然。宏用代码替换代码,所以 @mymacro(x)被简单地拉出并替换为 string(:x) .

关于julia introspection - 获取传递给函数的变量名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32928524/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com