当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Swift Result flatMap(_:)用法及代码示例


实例方法

flatMap(_:)

返回一个新结果,使用给定的转换映射任何成功值并解包生成的结果。

声明

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

返回值

Result 实例,来自闭包或之前的 .failure

参数

transform

一个获取实例成功值的闭包。

详述

当您的转换产生另一个 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)

可用版本

iOS 8.0+, iPadOS 8.0+, macOS 10.10+, Mac Catalyst 13.0+, tvOS 9.0+, watchOS 2.0+

相关用法


注:本文由纯净天空筛选整理自apple.com大神的英文原创作品 Result flatMap(_:)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。