Julia 使用默认值创建复合类型

Julia 使用默认值创建复合类型,julia,Julia,如何定义复合类型 mutable struct Foo bar::Int64 end 这样当我创建它的一个实例时,bar会得到一个默认值,比如说42 我知道我可以用 Foo(42) 但我想做点像 Foo() 您可以使用默认值定义构造函数: julia> struct Foo; bar::Int64; end julia> Foo() = Foo(42) Foo julia> Foo() Foo(42) 有关如何实现各种构造函数的信息,您可以查看文档:您可以这

如何定义复合类型

mutable struct Foo
    bar::Int64
end
这样当我创建它的一个实例时,
bar
会得到一个默认值,比如说
42

我知道我可以用

Foo(42)
但我想做点像

Foo()

您可以使用默认值定义构造函数:

julia> struct Foo; bar::Int64; end

julia> Foo() = Foo(42)
Foo

julia> Foo()
Foo(42)

有关如何实现各种构造函数的信息,您可以查看文档:

您可以这样使用:

如果您需要更多功能,那么您可以查看一个名为

Base.@kwdef mutable struct Foo
    bar::Int64 = 42
end   
julia> foo = Foo()
Foo(42)

julia> foo.bar
42

julia> foo = Foo(bar = 423)
Foo(423)

julia> foo.bar
423