在尝试理解 Julia 中的参数结构时,我将以下结构定义为 AbstractSet 的子类型
struct MySet{T} <: AbstractSet{T}
st::Vector{T}
MySet(x::Vector{T}) where {T} = new{T}(x)
end
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试创建 MySet 类型的新对象时,出现以下错误
julia> MySet([1,2])
MethodError: no method matching iterate(::MySet{Int64})
Closest candidates are:
iterate(::Union{LinRange, StepRangeLen}) at ~/julia-1.7.1-linux-x86_64/julia-
1.7.1/share/julia/base/range.jl:826
iterate(::Union{LinRange, StepRangeLen}, ::Integer) at ~/julia-1.7.1-linux-
x86_64/julia-1.7.1/share/julia/base/range.jl:826
iterate(::T) where T<:Union{Base.KeySet{<:Any, <:Dict},
Base.ValueIterator{<:Dict}} at ~/julia-1.7.1-linux-x86_64/julia-
1.7.1/share/julia/base/dict.jl:695
Run Code Online (Sandbox Code Playgroud)
有人可以帮助我理解为什么我会收到此错误。