实例方法
try
tryContains(where:)
在接收到满足抛出谓词闭包的元素时发布布尔值。
声明
func tryContains(where predicate: @escaping (Self.Output) throws -> Bool) -> Publishers.TryContainsWhere<Self>
返回值
当上游发布者发出匹配值时发出布尔值 true
的发布者。
参数
predicate
一个闭包,它接受一个元素作为其参数并返回一个布尔值,该值指示该元素是否满足闭包的比较逻辑。
详述
使用 Publisher/tryContains(where:)
查找上游中满足您提供的 error-throwing 闭包的第一个元素。
该运算符使用上游发布者生成的元素,直到上游发布者:
-
产生一个匹配元素,然后它发出
true
并且发布者正常完成。 -
如果没有找到匹配的元素并且发布者正常完成,则发出
false
。
如果谓词抛出错误,则发布者失败,将错误传递给其下游。
在下面的示例中,Publisher/tryContains(where:)
运算符测试值以查找小于 10
的元素;当闭包找到奇数时,例如 3
,发布者以 IllegalValueError
终止。
struct IllegalValueError: Error {}
let numbers = [3, 2, 10, 5, 0, 9]
numbers.publisher
.tryContains {
if ($0 % 2 != 0) {
throw IllegalValueError()
}
return $0 < 10
}
.sink(
receiveCompletion: { print ("completion: \($0)") },
receiveValue: { print ("value: \($0)") }
)
// Prints: "completion: failure(IllegalValueError())"
可用版本
iOS 13.0+, iPadOS 13.0+, macOS 10.15+, Mac Catalyst 13.0+, tvOS 13.0+, watchOS 6.0+
相关用法
- Swift Optional.Publisher tryCompactMap(_:)用法及代码示例
- Swift Optional.Publisher tryCatch(_:)用法及代码示例
- Swift Optional.Publisher tryDrop(while:)用法及代码示例
- Swift Optional.Publisher tryAllSatisfy(_:)用法及代码示例
- Swift Optional.Publisher tryReduce(_:_:)用法及代码示例
- Swift Optional.Publisher tryPrefix(while:)用法及代码示例
- Swift Optional.Publisher tryFirst(where:)用法及代码示例
- Swift Optional.Publisher tryScan(_:_:)用法及代码示例
- Swift Optional.Publisher tryFilter(_:)用法及代码示例
- Swift Optional.Publisher tryMax(by:)用法及代码示例
- Swift Optional.Publisher tryRemoveDuplicates(by:)用法及代码示例
- Swift Optional.Publisher tryMap(_:)用法及代码示例
- Swift Optional.Publisher tryLast(where:)用法及代码示例
- Swift Optional.Publisher tryMin(by:)用法及代码示例
- Swift Optional.Publisher throttle(for:scheduler:latest:)用法及代码示例
- Swift Optional.Publisher timeout(_:scheduler:options:customError:)用法及代码示例
- Swift Optional.Publisher reduce(_:_:)用法及代码示例
- Swift Optional.Publisher debounce(for:scheduler:options:)用法及代码示例
- Swift Optional.Publisher breakpoint(receiveSubscription:receiveOutput:receiveCompletion:)用法及代码示例
- Swift Optional.Publisher mapError(_:)用法及代码示例
- Swift Optional.Publisher catch(_:)用法及代码示例
- Swift Optional.Publisher zip(_:_:_:)用法及代码示例
- Swift Optional.Publisher sink(receiveValue:)用法及代码示例
- Swift Optional.Publisher scan(_:_:)用法及代码示例
- Swift Optional.Publisher assertNoFailure(_:file:line:)用法及代码示例
注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Optional.Publisher tryContains(where:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。