У меня есть следующий код, который работает:
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)"
})
Однако этот код выдает мне несколько ошибок:
Контекстный тип для списка аргументов закрытия предполагает 2 аргумента, которые нельзя неявно игнорировать Последовательные операторы в строке должны быть разделены символом ';' Ожидаемое выражение
Я не могу понять, почему я использую вкладку для автозаполнения функции с закрытием, и когда я заполняю аргументы, я получаю ошибки?
Вся функция объявлена так:
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