譬如下面的函数,如何改造,实现f1(a)输出的变量b的名称为a1
function f1(x)
global b =x
end
多谢!
譬如下面的函数,如何改造,实现f1(a)输出的变量b的名称为a1
function f1(x)
global b =x
end
多谢!
变量名不是函数可以处理的,函数编译后变量名已经没有什么意义了。
宏才是处理这些东西的工具。详细请参考文档元编程相关知识。
你的问题可以这样用宏处理:
macro addbinding(sym::Symbol, suf::Symbol)
newsym = Symbol(sym, suf)
quote
$newsym = $sym
end |> esc
end
使用时
a = 1
@addbinding a b #or @binding(a, b)
@assert ab == a == 1
写错了,去掉 suf
的类型标注,否则不接受数字
明白了,多谢指点!现在想来这需求可能也没啥用