Return Value 戻り値
An array of the non-nil
results of calling transform
with each element of the sequence.
シーケンスの各要素でtransform
を呼ぶことの非nil
の結果の配列。
nil
results of calling the given transformation with each element of this sequence.
指定された変換をこのシーケンスの各要素で呼び出す結果で非-nil
のものを含んでいる配列を返します。
Availability 有効性
Technology
func compactMap<ElementOfResult>(_ transform: (Self.Element) throws -> ElementOfResult ?) rethrows -> [ElementOfResult ]
An array of the non-nil
results of calling transform
with each element of the sequence.
シーケンスの各要素でtransform
を呼ぶことの非nil
の結果の配列。
transform
A closure that accepts an element of this sequence as its argument and returns an optional value. あるクロージャ、それはこのシーケンスのひとつの要素をそれの引数として受け取って、ひとつのオプショナルの値を返すものです。
Use this method to receive an array of non-optional values when your transformation produces an optional value. あなたの変換がオプショナル値を生成する場合に、このメソッドを使って非オプショナル値からなる配列を受け取ってください。
In this example, note the difference in the result of using map
and compact
with a transformation that returns an optional Int
value.
この例において、map
とcompact
を、オプショナルInt
値を返す変換とともに使う結果の違いに注意してください。
let possibleNumbers = ["1", "2", "three", "///4///", "5"]
let mapped: [Int?] = possibleNumbers.map { str in Int(str) }
// [1, 2, nil, nil, 5]
let compactMapped: [Int] = possibleNumbers.compactMap { str in Int(str) }
// [1, 2, 5]
Complexity
O(m + n), where n is the length of this sequence and m is the length of the result.