インスタンスメソッド


contains(where:)


シーケンスに、与えられた述語を満たす要素が含まれているかどうかを示すブール値を返します。


System Swift iOS 14.0+ iPadOS 14.0+ Mac Catalyst 14.0+

macOS 11.0+ tvOS 14.0+ visionOS 1.0+ watchOS 7.0+

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




パラメータ


predicate

シーケンスの要素をその引数として受け取り、渡された要素が一致するかどうかを示すブール値を返すクロージャ。



戻り値


シーケンスに predicate (述語) を満たす要素が含まれている場合は true、それ以外の場合は false


議論


この predicate (述語) を使用すると、この例の HTTPResponse 列挙体など、Equatable のプロトコルに準拠していない型の要素をチェックできます。


  1. enum HTTPResponse {
  2. case ok
  3. case error(Int)
  4. }
  5. let lastThreeResponses: [HTTPResponse] = [.ok, .ok, .error(404)]
  6. let hadError = lastThreeResponses.contains { element in
  7. if case .error = element {
  8. return true
  9. } else {
  10. return false
  11. }
  12. }
  13. // 'hadError' == true

あるいは、述語は、Equatable 要素の範囲または一般的な条件によって満たされる場合があります。以下の例では、配列で 100 ドルを超える費用をチェックする方法を示します。


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

複雑さ:

O(n)、ここで n はシーケンスの長さです。













トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ