用法:
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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。