欢迎加入QQ讨论群258996829

Swift 将任意操作建模为 success/failure 的类库 Result

发布时间:2016-10-26 23:47  回复:0  查看:3968  感兴趣:10  赞:0   最后回复:2016-10-26 23:47  

Swift 2.0通过抛出和捕获ErrorType引入了错误处理。 Result通过封装结果来实现相同的目标。 Result抽象实现了强大的功能,如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)
    }
}


相关开源代码

您还未登录,请先登录

热门帖子

最新帖子