Julia中类型的静态字段

Julia中类型的静态字段,julia,Julia,我想要这种形式的东西 type Foo a::Int b::Int = 5 end 其中,Foo()给出了类型为Foo的实例,其中Foo.a保持未分配且Foo.b=5 但是默认的隐式构造函数只在没有分配任何字段的情况下才起作用,因此,由于我希望预先分配Foo.b=5(如果可能的话,包括静态和最终),我必须定义自己的内部构造函数,有人能告诉我怎么做吗?我还没有弄明白。好吧,我想我已经弄明白了,我必须先从我想要预定义的字段开始,但是等着在内部构造函数中使用new()来定义它

我想要这种形式的东西

type Foo
    a::Int
    b::Int = 5
    end
其中,
Foo()
给出了类型为
Foo
的实例,其中
Foo.a
保持未分配且
Foo.b=5


但是默认的隐式构造函数只在没有分配任何字段的情况下才起作用,因此,由于我希望预先分配
Foo.b=5
(如果可能的话,包括静态和最终),我必须定义自己的内部构造函数,有人能告诉我怎么做吗?我还没有弄明白。

好吧,我想我已经弄明白了,我必须先从我想要预定义的字段开始,但是等着在内部构造函数中使用
new()
来定义它们,对于我想要保持未定义的字段,我不能给它们一个预定义的类型,下面是代码:

type Foo
    b::Int
    a

    Foo() = new(5)
    end

现在
Foo()。如果您的意思是“static”,如“is global,而不必处理实例”,那么根本不要将其放在类型声明中。如果您的意思是“final”,如“cannothavesubtypes”,那么Julia中的所有具体类型都是这样。@MikeGraham我指的是Java意义上的static和final。所谓“静态”我指的是属于类型而不是与实例有关,但是我不确定类型(与类相反)是否存在这种区别,所谓“最终”我指的是它不能更改。如果某个内容不属于实例,则根本不要将其放在类型定义中。要意识到,在Julia中,您可能会使用模块来处理Java中可能会使用类的事情。(如果这个全局的东西是可变的,那么要非常清楚。)没有理由不给
a
a
::Int
注释。如果希望字段可能为空,请使用
可空{Int}
,而不是允许它为
#undef