Swift3 iOS RXSwift如何从中获取价值。成功结果?

Swift3 iOS RXSwift如何从中获取价值。成功结果?,swift3,ios11,rx-swift,associated-types,Swift3,Ios11,Rx Swift,Associated Types,获取相关值的正确语法是什么。RXSwift中的成功结果? .map{ (result : Result<Double>) -> Double in //how to get duration from result? this does not work let duration : Double = result.success.value return duration } .map{(结果:result)->双精度输入 /

获取相关值的正确语法是什么。RXSwift中的成功结果?

.map{ (result : Result<Double>) -> Double in
        //how to get duration from result? this does not work
        let duration : Double = result.success.value
        return duration
}
.map{(结果:result)->双精度输入
//如何从结果中获取持续时间?这不起作用
让持续时间:Double=result.success.value
返回持续时间
}

添加通用扩展名:

enum Result<T> {
    case success(T)
    case failure(Error)
}

extension Result {

    var successResult: T? {
        guard case let .success(value) = self else { return nil }
        return value
    }
}

什么类型的
结果
?我猜它是一个枚举,您需要使用switch语句。@AlexStone将该方法添加为扩展。除非是在一个无法编辑的图书馆里,否则我不会费心。坦率地说,我希望任何像样的
结果
库都已经有了这样一个方法,一个提取错误的方法,还有一个map和flatMap。
result.successResult.map { duration in 
    // do something with duration
}