【发布时间】:2023-02-08 11:03:44
【问题描述】:
考虑以下代码。
struct MyType
data::Dict{Int, Float64}()
end
MyType() = MyType(Dict{Int, Float64}())
必须重复 data 的类型有点笨拙,如果您有更多变量和/或您的类型变得更复杂,问题很快就会失控。我可以避免这种情况吗?
【问题讨论】:
标签: julia
考虑以下代码。
struct MyType
data::Dict{Int, Float64}()
end
MyType() = MyType(Dict{Int, Float64}())
必须重复 data 的类型有点笨拙,如果您有更多变量和/或您的类型变得更复杂,问题很快就会失控。我可以避免这种情况吗?
【问题讨论】:
标签: julia
如果所讨论的类型是可默认构造的(即,它具有无参数构造函数),则可以使用以下技巧。
struct Default; end
Base.convert(::Type{T}, ::Default) where T = T()
struct MyType
data::Dict{Int, Float64}()
end
MyType() = MyType(Default())
【讨论】: