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

Aid*_*mez 7 swift swift2

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

output[i] = (sequence1[i], sequence2[i])
Run Code Online (Sandbox Code Playgroud)

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

文档完全没用.

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

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

Aid*_*mez 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)]
Run Code Online (Sandbox Code Playgroud)