函数
sequence(state:
sequence(state:next:)
将由
next
的重复惰性应用程序形成的序列返回到可变的 state
。声明
func sequence<T, State>(
state: State,
next: @escaping (inout State) -> T?
) -> UnfoldSequence<T, State>
返回值
从 next
产生每个连续值的序列。
参数
state
将传递给闭包的初始状态。
next
一个接受
inout
状态并返回序列的下一个元素的闭包。
详述
序列的元素是通过调用具有可变状态的next
来获得的。相同的状态被传递给 next
的所有调用,因此后续调用将看到先前调用所做的任何突变。当 next
返回 nil
时,序列结束。如果 next
从不返回 nil
,则序列是无限的。
此函数可用于替换许多包装闭包的AnyIterator
实例。
例子:
// Interleave two sequences that yield the same element type
sequence(state: (false, seq1.makeIterator(), seq2.makeIterator()), next: { iters in
iters.0 = !iters.0
return iters.0 ? iters.1.next() : iters.2.next()
})
可用版本
iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+
相关用法
- Swift sequence(first:next:)用法及代码示例
- Swift stride(from:through:by:)用法及代码示例
- Swift stride(from:to:by:)用法及代码示例
- Swift KeyValuePairs flatMap(_:)用法及代码示例
- Swift String.UTF8View first用法及代码示例
- Swift Result.Publisher zip(_:_:_:)用法及代码示例
- Swift Optional.Publisher reduce(_:_:)用法及代码示例
- Swift Int8 ~(_:)用法及代码示例
- Swift SetAlgebra isStrictSubset(of:)用法及代码示例
- Swift UInt +(_:)用法及代码示例
- Swift Array enumerated()用法及代码示例
- Swift FlattenSequence prefix(_:)用法及代码示例
- Swift Slice endIndex用法及代码示例
- Swift LazySequence split(maxSplits:omittingEmptySubsequences:whereSeparator:)用法及代码示例
- Swift MutableCollection partition(by:)用法及代码示例
- Swift ReversedCollection min(by:)用法及代码示例
- Swift RandomNumberGenerator用法及代码示例
- Swift Dictionary.Keys shuffled()用法及代码示例
- Swift AnySequence elementsEqual(_:)用法及代码示例
- Swift UInt &<<(_:_:)用法及代码示例
- Swift Optional.Publisher tryDrop(while:)用法及代码示例
- Swift DefaultIndices endIndex用法及代码示例
- Swift Substring.UnicodeScalarView insert(contentsOf:at:)用法及代码示例
- Swift LazyFilterSequence dropFirst(_:)用法及代码示例
- Swift LazySequence suffix(from:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 sequence(state:next:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。