文書   >   Swift   >   Swift 標準ライブラリ   >   Collections   >   Range   >   contains(where:)
インスタンスメソッド
contains(where:)
シーケンスに、与えられた predicate (述語) を満たす要素が含まれているかどうかを示すブール値を返します。
宣言
func contains(where predicate: (Bound) throws -> Bool) rethrows -> Bool
パラメータ
predicate | シーケンスの要素をその引数として取り、渡された要素が一致を表すかどうかを示すブール値を返すクロージャ。 |
戻り値
predicate (述語) を満たす要素がシーケンスに含まれている場合は true、それ以外の場合は 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
あるいは、predicate (述語) は、Equatable 要素の範囲または一般的な条件によって満たすことができます。この例では、$100 を超える費用を配列で確認する方法を示しています。
let expenses = [21.37, 55.21, 9.32, 10.18, 388.77, 11.41]
let hasBigPurchase = expenses.contains { $0 > 100 }
// 'hasBigPurchase' == true
複雑さ:O(n)、ここで n はシークエンスの長さです。
以下も見よ
含んでいるかの確認
func contains(Bound) -> Bool
与えられた要素が範囲内に含まれるかどうかを示すブール値を返します。
func allSatisfy((Bound) -> Bool) -> Bool
シーケンスのすべての要素が与えられた predicate (述語) を満たすかどうかを示すブール値を返します。
static func ~= (Range<Bound>, Bound) -> Bool
値が範囲に含まれるかどうかを示すブール値を返します。