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


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


实例方法

mapError(_:)

返回一个新结果,使用给定的转换映射任何失败值。

声明

func mapError<NewFailure>(_ transform: (Failure) -> NewFailure) -> Result<Success, NewFailure> where NewFailure : Error

返回值

Result 实例,如果此实例表示失败,则将 transform 评估为新的失败值。

参数

transform

采用实例失败值的闭包。

详述

当您需要在 Result 实例表示失败时转换它的值时,请使用此方法。以下示例通过将结果包装在自定义 Error 类型中来转换结果的错误值:


struct DatedError: Error {
    var error: Error
    var date: Date


    init(_ error: Error) {
        self.error = error
        self.date = Date()
    }
}


let result: Result<Int, Error> = // ...
// result == .failure(<error value>)
let resultWithDatedError = result.mapError({ e in DatedError(e) })
// result == .failure(DatedError(error: <error value>, date: <date>))

可用版本

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

相关用法


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