Ios Swift Combine:`first(`n:Int)`相当于RxSwift`take(`n:Int)`?

Ios Swift Combine:`first(`n:Int)`相当于RxSwift`take(`n:Int)`?,ios,swift,reactive-programming,combine,Ios,Swift,Reactive Programming,Combine,我想要一个类似于RxSwift的联合收割机操作符,我写了这个,它似乎在工作: 首次实施 失败==从不的公共扩展发布服务器{ ///发布流的第一个'n'元素,然后完成。 func first_uuNumberOfElements:Int->AnyPublisher{ collectnumberOfElements//缓冲区 .第一次//发布和完成 //发布者->发布者 .map{$0.publisher}.switchToLatest .橡皮擦出版商 } } 替代方案? 或者你能想出一个更好的替代

我想要一个类似于RxSwift的联合收割机操作符,我写了这个,它似乎在工作:

首次实施 失败==从不的公共扩展发布服务器{ ///发布流的第一个'n'元素,然后完成。 func first_uuNumberOfElements:Int->AnyPublisher{ collectnumberOfElements//缓冲区 .第一次//发布和完成 //发布者->发布者 .map{$0.publisher}.switchToLatest .橡皮擦出版商 } } 替代方案? 或者你能想出一个更好的替代方案吗

take,但我首先命名它,以镜像合并本机操作符—发布流的第一个元素,然后完成。运算符在编写测试时非常方便,我希望发布者在n个元素之后完成测试。

在Combine中,它被称为prefix:。

在联合收割机中,它被称为前缀:。

哈哈,我错过了,非常感谢!我想我希望这两个方法的名称first和prefix是相同的,就像RxSwift take一样。但这是有道理的,使用与数组相同的名称:哈哈,我错过了,非常感谢!我想我希望这两个方法的名称first和prefix是相同的,就像RxSwift take一样。但这是有意义的,使用与数组相同的名称,例如: