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
的输入相同?只是添加了内部构造函数-它们不是,我不知道你的意思是什么?哦,很好,不知道我以前做错了什么,谢谢。