汎用インスタンスメソッド


compactMap(_:)


このシーケンスの各要素で、与えられた変換を呼び出した nil でない結果を含む配列を返します。


iOS 15.0+ iPadOS 15.0+ macOS 12.0+ Mac Catalyst 15.0+

tvOS 15.0+ watchOS 8.0+ visionOS 1.0+ Xcode 13.0+

func compactMap<ElementOfResult>(_ transform: (Character) throws -> ElementOfResult?) rethrows -> [ElementOfResult]





パラメータ


transform

このシーケンスの要素をその引数として受け取り、オプションの値を返すクロージャ。



戻り値


シーケンスの各要素で transform を呼び出した nil でない結果の配列。



議論


あなたの変換によってオプションの値が生成される場合、このメソッドを使用して、オプションでない値の配列を受け取ります。


以下の例では、オプションの Int 値を返す変換で mapcompactMap を使用した結果の違いに注目してください。


  1. let possibleNumbers = ["1", "2", "three", "///4///", "5"]
  2. let mapped: [Int?] = possibleNumbers.map { str in Int(str) }
  3. // [1, 2, nil, nil, 5]
  4. let compactMapped: [Int] = possibleNumbers.compactMap { str in Int(str) }
  5. // [1, 2, 5]


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















トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ