インスタンスメソッド


flatMap(_:)


与えられた変換を使用して失敗の値をマッピングし、新しい結果を返します。


iOS 8.0+ iPadOS 8.0+ Mac Catalyst 13.0+ macOS 10.10+

tvOS 9.0+ visionOS 1.0+ watchOS 2.0+

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

FailureError に準拠している場合に使用できます。





パラメータ


transform

このインスタンスの成功の値を受け取るクロージャ。



戻り値


このクロージャまたは前の .failure からの Result のインスタンス。



議論


あなたの変換によって別の Result 型が生成される場合、このメソッドを使用してネストされた結果を避けてください。


以下の例では、結果の型を返す変換で 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)




以下も見よ


結果の変換


func map<NewSuccess>((Success) -> NewSuccess) -> Result<NewSuccess, Failure>

与えられた変換を使用して成功の値をマッピングし、新しい結果を返します。


func mapError<NewFailure>((Failure) -> NewFailure) -> Result<Success, NewFailure>

与えられた変換を使用して失敗の値をマッピングし、新しい結果を返します。


func flatMapError<NewFailure>((Failure) -> Result<Success, NewFailure>) -> Result<Success, NewFailure>

与えられた変換を使用して失敗の値をマッピングし、生成された結果を開封して、新しい結果を返します。














トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ












トップへ