Julia类型的设计器字段

Julia类型的设计器字段,julia,Julia,我想要一个类型,它接受一个参数并使用该参数构造该类型内部的列表,如下所示: type Foo index::Int end type Goo size::Int myList = [Foo(i) for i in 1:size] Goo(size) = new(size) end 我已经尝试了很多不同的方法,这里展示的方法希望能传达出我想要做的事情。我并不真正关心Goo是否保留大小信息,我只想让它使用这些信息来构建Foo长度size的对象列表

我想要一个类型,它接受一个参数并使用该参数构造该类型内部的列表,如下所示:

type Foo
    index::Int
    end

type Goo
    size::Int
    myList = [Foo(i) for i in 1:size]

    Goo(size) = new(size)
    end
我已经尝试了很多不同的方法,这里展示的方法希望能传达出我想要做的事情。我并不真正关心
Goo
是否保留大小信息,我只想让它使用这些信息来构建
Foo
长度
size
的对象列表,这些对象位于
Goo
类型实例的内部


另一方面,我阅读了github讨论和google群组关于允许抽象字段类型的讨论,我真希望Julia中包含该功能,给出的解决方法会使代码变得不必要的复杂和混乱(在我看来)。

应该可以。以下是具有外部构造函数的版本:

type Foo
    index::Int
end

type Goo
    mylist::Vector{Foo}
end
Goo(size::Int) = Goo([Foo(i) for i in 1:size])
或者使用内部构造函数

type Goo
    mylist::Vector{Foo}
    Goo(size::Int) = new([Foo(i) for i in 1:size])
end

至于抽象类型“issue”,我不认为问题已经完全解决了——接口可能是解决方案。不管怎样,许多包在没有抽象类型字段的情况下工作得很好。

是的,这是可行的,但是没有办法使其成为内部构造函数方法吗?为什么内部构造函数方法要求
Goo
new
的输入相同?只是添加了内部构造函数-它们不是,我不知道你的意思是什么?哦,很好,不知道我以前做错了什么,谢谢。