当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift AnySequence contains(where:)用法及代码示例


实例方法

contains(where:)

返回一个布尔值,指示序列是否包含满足给定谓词的元素。

声明

func contains(where predicate: (Self.Element) throws -> Bool) rethrows -> Bool

返回值

true 如果序列包含满足 predicate 的元素;否则,false

参数

predicate

一个闭包,它将序列的一个元素作为其参数并返回一个布尔值,该值指示传递的元素是否表示匹配。

详述

您可以使用谓词检查不符合 Equatable 协议的类型的元素,例如本例中的 HTTPResponse 枚举。


enum HTTPResponse {
    case ok
    case error(Int)
}


let lastThreeResponses: [HTTPResponse] = [.ok, .ok, .error(404)]
let hadError = lastThreeResponses.contains { element in
    if case .error = element {
        return true
    } else {
        return false
    }
}
// 'hadError' == true

或者,可以通过Equatable 元素的范围或一般条件来满足谓词。此示例说明如何检查阵列的费用是否超过 100 美元。


let expenses = [21.37, 55.21, 9.32, 10.18, 388.77, 11.41]
let hasBigPurchase = expenses.contains { $0 > 100 }
// 'hasBigPurchase' == true

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 AnySequence contains(where:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。