Julia - UnderVarError

标签 julia

以下代码抛出“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/

相关文章:

julia - Julia 中的函数链

type-conversion - 使用JuMP时如何转换变量的类型

julia - 我可以在 Julia 中找到字符串中的特定字符吗?

julia - 如何创建可用于矩阵数学的点类型

Julia:不能将 `convert` Array{Number,1} 类型的对象转换为 GLM.LmResp 类型的对象

struct - `==` 是否在 Julia 中递归检查结构?好像没有

arrays - 给定 n,生成大小小于 0.5n 的所有排列

julia - 在 Julia 中初始化锯齿状数组

julia - 如何定义类型在 Julia REPL 上的显示方式

variables - 如何在 Julia 中恢复默认常量值