朱莉娅-UnderVarError

潘乔

下面的代码引发“ 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,就可以了。为什么?

BogumiłKamiński

这是一个已知的错误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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章