朱莉娅,类型相互依赖

时间:2014-08-09 02:09:25

标签: julia

我如何解决这样的问题:

type Foo
    x::Goo
    end

type Goo
    y::Foo
    end

我觉得这是一个编译与运行时问题,有没有办法预先声明类型,以便解释器/编译器/什么不会引发LoadError?

1 个答案:

答案 0 :(得分:3)

一种方法是使用抽象类型

abstract GooLike

type Foo
     x::GooLike
end

type Goo <: GooLike
     y::Foo
end

或参数版

type Foo{T<:GooLike}
    x::T
end

有一个关于循环依赖的open issue(截至2014-08-08)。