Macros 调用宏时出错
我的任务是使用宏。 所以我写了这样的东西:Macros 调用宏时出错,macros,jupyter-notebook,julia,Macros,Jupyter Notebook,Julia,我的任务是使用宏。 所以我写了这样的东西: macro mean(arr) ex = Expr(:call, :/, 1, arr[1]) for i = 2:length(arr) ex = Expr(:call, :+, ex, Expr(:call, :/, 1, arr[i])) end println(arr[1]) Expr(:call, :/, length(arr), ex) end 然后用4个参数执行 @mean(2,
macro mean(arr)
ex = Expr(:call, :/, 1, arr[1])
for i = 2:length(arr)
ex = Expr(:call, :+, ex, Expr(:call, :/, 1, arr[i]))
end
println(arr[1])
Expr(:call, :/, length(arr), ex)
end
然后用4个参数执行
@mean(2,2,5,7)
导致错误的原因:
MethodError: no method matching @mean(::Int64, ::Int64, ::Int64, ::Int64)
所以我的问题来了:什么是错误的,我应该如何纠正?
值得一提的是,这个程序适用于我的朋友,但不适用于我。这里的问题是,您将值作为多个参数而不是数组插入。您应该执行
@mean([2,2,5,7])
这里的问题是您将值作为多个参数而不是数组插入。您应该执行@mean([2,2,5,7])
您需要编写宏平均值(arr…)
。此外,最好检查宏中的arr
是否为空。您需要写入macro mean(arr…)
。此外,最好检查宏中的arr
是否为空。