Swift:zip()如何处理两个不同大小的集合?

时间:2015-11-13 22:10:40

标签: swift swift2

zip()函数接受两个序列并返回一系列元组:

output[i] = (sequence1[i], sequence2[i])

然而,序列可能具有不同的维度。我的问题是Swift语言是如何处理的?

The docs完全无用。

对我来说,有两种可能性(在Swift中):

  • 在最短的
  • 结束时停止
  • 停止在最长的时间,填充默认构造函数或更短元素类型的预定义值

1 个答案:

答案 0 :(得分:11)

Swift使用第一个选项,生成的序列的长度等于两个输入中较短的一个

例如:

let a: [Int] = [1, 2, 3]
let b: [Int] = [4, 5, 6, 7]

let c: [(Int, Int)] = zip(a, b) // [(1, 4), (2, 5), (3, 6)]