Generic Instance Method 総称体インスタンスメソッド

flatMap(_:)

Evaluates the given closure when this Optional instance is not nil, passing the unwrapped value as a parameter. 与えられたクロージャをこのOptionalインスタンスがnilでない場合に評価します、アンラップされた値をパラメータとして渡しています。

Declaration 宣言

func flatMap<U>(_ transform: (Wrapped) throws -> U?) rethrows -> U?

Parameters パラメータ

transform

A closure that takes the unwrapped value of the instance. このインスタンスのアンラップされた値をとるクロージャ。

Return Value 戻り値

The result of the given closure. If this instance is nil, returns nil. 与えられたクロージャの結果このインスタンスがnilならば、nilを返します。

Discussion 解説

Use the flatMap method with a closure that returns an optional value. This example performs an arithmetic operation with an optional result on an optional integer. flatMapメソッドをオプショナル値を返すクロージャとともに使ってください。この例は、オプショナル結果をもつ算術演算をあるオプショナル整数上で実行します。


let possibleNumber: Int? = Int("42")
let nonOverflowingSquare = possibleNumber.flatMap { x -> Int? in
    let (result, overflowed) = x.multipliedReportingOverflow(by: x)
    return overflowed ? nil : result
}
print(nonOverflowingSquare)
// Prints "Optional(1764)"

See Also 参照

Transforming an Optional Value オプショナル値の変換