用法一
实例方法
filter(_:)
创建一个异步序列,其中按顺序包含满足给定 error-throwing 谓词的基本序列元素。
声明
@preconcurrency func filter(_ isIncluded: @escaping (Self.Element) async throws -> Bool) -> AsyncThrowingFilterSequence<Self>
返回值
按顺序包含满足给定谓词的基本序列元素的异步序列。如果谓词抛出错误,则序列仅包含在错误之前产生的值。
参数
isIncluded
一个 error-throwing 闭包,它将异步序列的元素作为其参数,并返回一个布尔值,指示是否在过滤后的序列中包含该元素。
详述
在此示例中,名为 Counter
的异步序列生成从 1
到 10
的 Int
值。 filter(_:)
方法为偶数返回 true
,为奇数值返回 false
,从而过滤掉奇数值,但对于可被 5 整除的值也会引发错误:
do {
let stream = Counter(howHigh: 10)
.filter {
if $0 % 5 == 0 {
throw MyError()
}
return $0 % 2 == 0
}
for try await number in stream {
print("\(number) ", terminator: " ")
}
} catch {
print("Error: \(error)")
}
// Prints: 2 4 Error: MyError()
可用版本
iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+
用法二
实例方法
filter(_:)
创建一个异步序列,该序列按顺序包含满足给定谓词的基本序列元素。
声明
@preconcurrency func filter(_ isIncluded: @escaping (Self.Element) async -> Bool) -> AsyncFilterSequence<Self>
返回值
按顺序包含满足给定谓词的基本序列元素的异步序列。
参数
isIncluded
一个闭包,它将异步序列的元素作为其参数并返回一个布尔值,该值指示是否在过滤后的序列中包含该元素。
详述
在此示例中,名为 Counter
的异步序列生成从 1
到 10
的 Int
值。 filter(_:)
方法为偶数返回true
,为奇数返回false
,从而过滤掉奇数:
let stream = Counter(howHigh: 10)
.filter { $0 % 2 == 0 }
for await number in stream {
print("\(number) ", terminator: " ")
}
// Prints: 2 4 6 8 10
可用版本
iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+
相关用法
- Swift AsyncSequence first(where:)用法及代码示例
- Swift AsyncSequence flatMap(_:)用法及代码示例
- Swift AsyncSequence dropFirst(_:)用法及代码示例
- Swift AsyncSequence reduce(_:_:)用法及代码示例
- Swift AsyncSequence prefix(_:)用法及代码示例
- Swift AsyncSequence map(_:)用法及代码示例
- Swift AsyncSequence allSatisfy(_:)用法及代码示例
- Swift AsyncSequence min()用法及代码示例
- Swift AsyncSequence drop(while:)用法及代码示例
- Swift AsyncSequence contains(_:)用法及代码示例
- Swift AsyncSequence max()用法及代码示例
- Swift AsyncSequence prefix(while:)用法及代码示例
- Swift AsyncSequence max(by:)用法及代码示例
- Swift AsyncSequence compactMap(_:)用法及代码示例
- Swift AsyncSequence min(by:)用法及代码示例
- Swift AsyncSequence contains(where:)用法及代码示例
- Swift AsyncSequence用法及代码示例
- Swift AsyncStream用法及代码示例
- Swift AsyncStream first(where:)用法及代码示例
- Swift AsyncStream prefix(_:)用法及代码示例
- Swift AsyncStream drop(while:)用法及代码示例
- Swift AsyncStream max(by:)用法及代码示例
- Swift AsyncStream dropFirst(_:)用法及代码示例
- Swift AsyncStream reduce(_:_:)用法及代码示例
- Swift AsyncStream prefix(while:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 AsyncSequence filter(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。