Julia 中的不完整初始化

Incomplete Initialisation in Julia

我想在 Julia 中初始化数据类型的一部分,我目前有:

mutable struct Foo
    bar::Int
    baz::Int
    maz::Int
    Foo(maz=2)=new(maz)
end

foo=Foo()
println(foo)

然而,这会创建一个 Foo(2, 0, 0)

的对象

我该怎么做才能得到 Foo(0, 0, 2)

注意:我宁愿不必进行完整的初始化

使用new()(详见here):

julia> mutable struct Foo
           bar::Int
           baz::Int
           maz::Int
           function Foo(maz=2)
               foo = new()
               foo.maz = maz
               return foo
           end
       end

julia> foo=Foo()
Foo(139985835568976, 8, 2)

请注意,barbaz 字段未设置为 0,而是未初始化。