歡迎加入QQ討論群258996829

Swift 將任意操作建模為 success/failure 的類庫 Result

發(fā)布時間:2016-10-26 23:47  回復(fù):0  查看:4160  感興趣:10  贊:0   最后回復(fù):2016-10-26 23:47  

Swift 2.0通過拋出和捕獲ErrorType引入了錯誤處理。 Result通過封裝結(jié)果來實現(xiàn)相同的目標(biāo)。 Result抽象實現(xiàn)了強大的功能,如mapflatMap,使用resultthrow更加合適。

示例代碼:

typealias JSONObject = [String:AnyObject]

enum JSONError : ErrorType {
    case NoSuchKey(String)
    case TypeMismatch
}

func stringForKey(json: JSONObject, key: String) -> Result<String, JSONError> {
    guard let value = json[key] else {
        return .Failure(.NoSuchKey(key))
    }

    if let value = value as? String {
        return .Success(value)
    }
    else {
        return .Failure(.TypeMismatch)
    }
}


相關(guān)開源代碼

您還未登錄,請先登錄

熱門帖子

最新帖子

?