作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Julia 中是否有 Collection
类型,Set
和 Array
都派生自该类型?
我有两个:
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
我试图实现的是编写可以将 Array
或 Set
作为参数的函数,因为只要我可以,集合的类型并不重要遍历它。
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/
我是一名优秀的程序员,十分优秀!