用法:
Stateful(itr)
有几种不同的方式来考虑这个迭代器包装器:
- 它提供了一个围绕迭代器及其迭代状态的可变包装器。
- 它将 iterator-like 抽象转换为类似于
Channel
的抽象。 - 它是一个迭代器,只要生成一个项目,它就会变异成为自己的休息迭代器。
Stateful
提供常规迭代器接口。与其他可变迭代器(例如
)一样,如果提前停止迭代(例如通过 Channel
循环中的 for
),则可以通过继续迭代同一迭代器对象(在相反,不可变的迭代器将从头开始)。break
例子
julia> a = Iterators.Stateful("abcdef");
julia> isempty(a)
false
julia> popfirst!(a)
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
julia> collect(Iterators.take(a, 3))
3-element Vector{Char}:
'b': ASCII/Unicode U+0062 (category Ll: Letter, lowercase)
'c': ASCII/Unicode U+0063 (category Ll: Letter, lowercase)
'd': ASCII/Unicode U+0064 (category Ll: Letter, lowercase)
julia> collect(a)
2-element Vector{Char}:
'e': ASCII/Unicode U+0065 (category Ll: Letter, lowercase)
'f': ASCII/Unicode U+0066 (category Ll: Letter, lowercase)
julia> Iterators.reset!(a); popfirst!(a)
'a': ASCII/Unicode U+0061 (category Ll: Letter, lowercase)
julia> Iterators.reset!(a, "hello"); popfirst!(a)
'h': ASCII/Unicode U+0068 (category Ll: Letter, lowercase)
julia> a = Iterators.Stateful([1,1,1,2,3,4]);
julia> for x in a; x == 1 || break; end
julia> peek(a)
3
julia> sum(a) # Sum the remaining elements
7
相关用法
- Julia Iterators.partition用法及代码示例
- Julia Iterators.rest用法及代码示例
- Julia Iterators.enumerate用法及代码示例
- Julia Iterators.zip用法及代码示例
- Julia Iterators.filter用法及代码示例
- Julia Iterators.drop用法及代码示例
- Julia Iterators.countfrom用法及代码示例
- Julia Iterators.product用法及代码示例
- Julia Iterators.accumulate用法及代码示例
- Julia Iterators.map用法及代码示例
- Julia Iterators.dropwhile用法及代码示例
- Julia Iterators.peel用法及代码示例
- Julia Iterators.reverse用法及代码示例
- Julia Iterators.repeated用法及代码示例
- Julia Iterators.takewhile用法及代码示例
- Julia Iterators.cycle用法及代码示例
- Julia Iterators.take用法及代码示例
- Julia Iterators.flatten用法及代码示例
- Julia IteratorsMD.CartesianIndex用法及代码示例
- Julia IteratorsMD.CartesianIndices用法及代码示例
- Julia InteractiveUtils.supertypes用法及代码示例
- Julia IdDict用法及代码示例
- Julia InteractiveUtils.subtypes用法及代码示例
- Julia Inf用法及代码示例
- Julia IOBuffer用法及代码示例
注:本文由纯净天空筛选整理自julialang.org 大神的英文原创作品 Base.Iterators.Stateful — Type。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。