我有下面的代码可以工作:
let obsScan = source.scan(0, accumulator: +)
let obsReduce = source.reduce(0, accumulator: +)
let obs = Observable.zip(obsScan, obsReduce) { scan, reduce in
return "scan - \(scan), reduce - \(reduce)"
}我想重写它,使用自动完成闭包语法,最后我得到了:
let obs = Observable.zip(obsScan, obsReduce, resultSelector: { (scan, reduce) -> _ in
return "scan - \(scan), reduce - \(reduce)"
})但是,该代码会引发多个错误:
闭包参数列表的上下文类型需要两个参数,不能隐式忽略行上的连续语句,必须用';‘预期表达式分隔。
我不明白为什么我使用选项卡来使用闭包自动完成函数,而当我填充参数时,我得到了一个错误。
整个职能是这样宣布的:
public static func zip<O1, O2>(_ source1: O1, _ source2: O2, resultSelector: @escaping (O1.E, O2.E) throws -> RxSwift.Observable.E) -> RxSwift.Observable<RxSwift.Observable.E> where O1 : ObservableType, O2 : ObservableType发布于 2017-11-18 18:04:18
我不知道你还在等什么。但这应该是可行的:
let obs = Observable.zip(obsScan, obsReduce, resultSelector: { scan, reduce in
return "scan - \(scan), reduce - \(reduce)"
})https://stackoverflow.com/questions/47369189
复制相似问题