當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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(_:)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。