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

flatMap(_:)

Returns a new result, mapping any success value using the given transformation and unwrapping the produced result. 新しい結果を返します、あらゆる成功値をこの与えられた変換を使ってマッピングしています、そして生成された結果をアンラップしています。

Declaration 宣言

func flatMap<NewSuccess>(_ transform: (Success) -> Result<NewSuccess, Failure>) -> Result<NewSuccess, Failure>

Parameters パラメータ

transform

A closure that takes the success value of the instance. そのインスタンスの成功した値をとるクロージャ。

Return Value 戻り値

A Result instance, either from the closure or the previous .failure. Resultインスタンス、クロージャまたは前の.failureのどちらかから。

Discussion 解説

Use this method to avoid a nested result when your transformation produces another Result type. あなたの変換が別のResult型を生み出す時に、入れ子にされた結果を避けるためにこのメソッドを使ってください。

In this example, note the difference in the result of using map and flatMap with a transformation that returns an result type. この例において、mapflatMapをある結果型を返す変換とともに使うことの結果における違いに注意してください。


func getNextInteger() -> Result<Int, Error> {
    .success(4)
}
func getNextAfterInteger(_ n: Int) -> Result<Int, Error> {
    .success(n + 1)
}


let result = getNextInteger().map({ getNextAfterInteger($0) })
// result == .success(.success(5))


let result = getNextInteger().flatMap({ getNextAfterInteger($0) })
// result == .success(5)

See Also 参照

Transforming a Result 結果を変換する