以下代码抛出“UndefVarError:g未定义”
function asdf()
if true
f(t) = t
else
g(t) = t
f(t) = g(t)
end
return f
end
w = asdf()
w(1)
但是通过将 f(t) = g(t) 替换为 f = g,它就可以了。为什么?
最佳答案
这是一个已知错误 https://github.com/JuliaLang/julia/issues/15602 .
简短的建议是不要定义一个在函数体内两次访问方法表的函数。而是使用一个变量,在分支中为其分配两个不同的函数(具有不同的名称或匿名)。
在解决此问题之前您应该做的是:
function asdf()
if true
f = t -> t
else false
g(t) = t
f = g(t)
end
return f
end
关于 Julia - UnderVarError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52239198/