gpt4 book ai didi

collections - Set 和 Array 之间是否存在 Collection 父类(super class)型?如果不是,一个函数如何在 Sets 和 Arrays 上是多态的(用于迭代)?

转载 作者:行者123 更新时间:2023-12-04 00:19:16 24 4
gpt4 key购买 nike

Julia 中是否有 Collection 类型,SetArray 都派生自该类型?

我有两个:

julia> supertype(Array)
DenseArray{T,N} where N where T

julia> supertype(DenseArray)
AbstractArray{T,N} where N where T

julia> supertype(AbstractArray)
Any

和:

julia> supertype(Set)
AbstractSet{T} where T

julia> supertype(AbstractSet)
Any

我试图实现的是编写可以将 ArraySet 作为参数的函数,因为只要我可以,集合的类型并不重要遍历它。

function(Collection{SomeOtherType} myCollection)
for elem in myCollection
doSomeStuff(elem)
end
end

最佳答案

不,没有 Collection 类型,也没有 Iterable 类型。

理论上,您所要求的可以通过特征来实现,您可以在其他地方阅读到。但是,我认为您应该在此处使用特征,而只是避免将参数的类型限制为函数。也就是说,而不是做

foo(x::Container) = bar(x)

,做

foo(x) = bar(x)

不会有性能差异。

关于collections - Set 和 Array 之间是否存在 Collection 父类(super class)型?如果不是,一个函数如何在 Sets 和 Arrays 上是多态的(用于迭代)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61887227/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com