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)
请注意,bar
和 baz
字段未设置为 0
,而是未初始化。
我想在 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)
请注意,bar
和 baz
字段未设置为 0
,而是未初始化。