小编use*_*001的帖子

Julia 结构错误“没有匹配迭代的方法”

在尝试理解 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)

有人可以帮助我理解为什么我会收到此错误。

struct julia

2
推荐指数
1
解决办法
1129
查看次数

标签 统计

julia ×1

struct ×1