函数中直接生成新的全局变量这种方式可取吗?然后如何将输出变量 命名为 输入变量名加后缀之类的相关名称?

譬如下面的函数,如何改造,实现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 的类型标注,否则不接受数字

明白了,多谢指点!现在想来这需求可能也没啥用 :sweat_smile:

京ICP备17009874号-2