首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift闭包语法

Swift闭包语法
EN

Stack Overflow用户
提问于 2017-11-18 17:49:10
回答 1查看 393关注 0票数 1

我有下面的代码可以工作:

代码语言:javascript
复制
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)"
}

我想重写它,使用自动完成闭包语法,最后我得到了:

代码语言:javascript
复制
let obs = Observable.zip(obsScan, obsReduce, resultSelector: { (scan, reduce) -> _ in
         return "scan - \(scan), reduce - \(reduce)"
})

但是,该代码会引发多个错误:

闭包参数列表的上下文类型需要两个参数,不能隐式忽略行上的连续语句,必须用';‘预期表达式分隔。

我不明白为什么我使用选项卡来使用闭包自动完成函数,而当我填充参数时,我得到了一个错误。

整个职能是这样宣布的:

代码语言:javascript
复制
 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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-18 18:04:18

我不知道你还在等什么。但这应该是可行的:

代码语言:javascript
复制
let obs = Observable.zip(obsScan, obsReduce, resultSelector: { scan, reduce in
         return "scan - \(scan), reduce - \(reduce)"
})
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47369189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档