インスタンスメソッド


compactMap(_:)


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


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 compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult?) rethrows -> [ElementOfResult]




パラメータ


transform

このシーケンスの要素をその引数として受け入れ、optional の値を返すクロージャ。



戻り値


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


議論


変換によってoptional 値が生成されるときに、optional ではない値の配列を受け取るには、このメソッドを使用します。


以下の例では、optional の 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 はこのシーケンスの長さです。













トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ