你能在Julia中找到相互引用的类型吗?
我得到以下代码的你能在Julia中找到相互引用的类型吗?,julia,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{IntL
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}
如果我在加号和减号之前声明表达式
,我会得到类似的错误。将代码包装在模块中
也不会改变任何东西
有没有一种方法可以在Julia中声明类型之前引用该类型?如果不是,对于这两种类型相互依赖的情况,建议的解决方案是什么?只是删除类型注释
在这个特殊的例子中,我相信我可以将Expression
作为抽象类型,并将其他类型作为它的子类型。在这种情况下建议这样做吗?一般情况如何?目前没有,没有。有关更多详细信息,请参阅。也许表达式
应该定义为抽象类型,请参阅文档中的“我相信我可以将表达式定义为抽象类型,并将其他表达式作为其子类型。在这种情况下建议这样做吗?”是的。“一般情况如何?”特征和类型参数。