需求
给定一个定义在函数里的宏,能实现功能。
代码
function add(x, y)
return x + y
end
macro run_process(content)
return quote
if x != y
$(content)
end
end
end
function fun_runprocess(x, y)
@run_process :(z = add(x, y))
return z
end
input1 = 3
input2 = 4
fun_runprocess(input1, input2)
println(z)
输出结果:
ERROR: LoadError: UndefVarError: x not defined
Stacktrace:
[1] fun_runprocess(x::Int64, y::Int64)
@ Main ~/test/runtests2.jl:7
[2] top-level scope
@ ~/test/runtests2.jl:20
in expression starting at ………../test/runtests2.jl:20
问题
如输出结果所示,提示x未定义。那么需要如何改才能实现正常输出z=input1+input2=3+4=7 ?