下面的代码引发“ 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句