Julia 使用参数化类型创建空对象的方法是什么?
What's the Julia way of creating an empty object with a parameterized type?
假设,我们有如下数据结构
struct MyStruct{T}
t :: Union{Nothing, T}
end
并且我们希望允许用户在不添加任何数据的情况下初始化结构,例如 MyStruct{T}()
.
到目前为止,我已经试过了
MyStruct() where {T} = MyStruct{T}(nothing)
我尝试用
实例化
x = MyStruct{Int}()
这告诉我
ERROR: MethodError: no method matching MyStruct{Int64}()
Closest candidates are:
MyStruct{T}(::Any) where T at REPL[1]:2
Stacktrace:
[1] top-level scope
@ REPL[4]:1
执行此操作的惯用方法是什么?
这是你想要的吗?
julia> MyStruct{T}() where T = MyStruct{T}(nothing)
julia> MyStruct{Int}()
MyStruct{Int64}(nothing)
假设,我们有如下数据结构
struct MyStruct{T}
t :: Union{Nothing, T}
end
并且我们希望允许用户在不添加任何数据的情况下初始化结构,例如 MyStruct{T}()
.
到目前为止,我已经试过了
MyStruct() where {T} = MyStruct{T}(nothing)
我尝试用
实例化x = MyStruct{Int}()
这告诉我
ERROR: MethodError: no method matching MyStruct{Int64}()
Closest candidates are:
MyStruct{T}(::Any) where T at REPL[1]:2
Stacktrace:
[1] top-level scope
@ REPL[4]:1
执行此操作的惯用方法是什么?
这是你想要的吗?
julia> MyStruct{T}() where T = MyStruct{T}(nothing)
julia> MyStruct{Int}()
MyStruct{Int64}(nothing)