Как определить составной тип
mutable struct Foo bar::Int64 end
так, чтобы при создании его экземпляра bar получал значение по умолчанию, скажем, 42?
bar
42
I знаю, что я могу создать экземпляр с
Foo(42)
, но я хотел бы сделать что-то вроде
Foo()
Вы можете просто определить конструктор со значением по умолчанию:
julia> struct Foo; bar::Int64; end julia> Foo() = Foo(42) Foo julia> Foo() Foo(42)
Вы можете использовать Base. @ Kwdef примерно так:
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
А если вам нужна дополнительная функциональность, вы можете проверить пакет с именем Параметры .jl
Информацию о том, как реализовать различные конструкторы, вы можете найти в документации: https://docs.julialang.org/en/v1/manual/constructors/