【发布时间】:2021-07-16 20:12:14
【问题描述】:
我有两种类型
let left: Future<[Int]>
let right: Future<[Int]>
如何将这些组合起来,以便拥有一个连续的一维数组?
使用append 和merge 创建二维数组并没有明确的信息。确实是收集 2D 数组然后在 flatMap 中使用 flatMap 的最佳方法,例如:
.collect().flatMap { arrays in arrays.flatMap { $0 } }
必须有更好的方法。
【问题讨论】:
-
这里的“组合数组”是什么意思?如果您有从
left发出的[1,4]和[2,3,5]- 从right,应该发生什么?您是要等到拥有两个值并合并到[1,4,2,3,5]中,还是要一个接一个地发出值? -
@NewDev 回答您的问题 - 这些是未来,因此数组作为单个对象出现,而不是单独作为流。左/右或右/左的顺序对我来说并不重要:)
-
@NewDev 到您的示例,这将是完美的,但只是作为单个数组发出
[1,4,2,3,5]。 (我的示例代码会按照您的建议产生输出,我只是认为可能有更好的方法)
标签: arrays swift combine flatmap