你能在Julia中找到相互引用的类型吗?

时间:2017-11-14 03:34:50

标签: julia

我得到ERROR: LoadError: UndefVarError: Expression not defined以获取以下代码:

struct IntLiteral
    value::Int
end

struct Plus
    left::Expression
    right::Expression
end

struct Minus
    left::Expression
    right::Expression
end

const Expression = Union{IntLiteral, Plus, Minus}

如果我在ExpressionPlus之前声明Minus,我会收到类似的错误。将代码包装在module中也不会改变任何内容。

有没有办法在朱莉娅的声明之前引用一个类型?如果没有,对于这样的情况,推荐的解决方案是什么,其中两种类型相互依赖?只需删除类型注释?

在这种特殊情况下,我相信我可以使Expression成为抽象类型,并使其他类型成为它的子类型。在这种情况下是推荐的吗?一般情况怎么样?

1 个答案:

答案 0 :(得分:1)

目前不是,不。有关详细信息,请参阅issue #269