我刚刚发现了Swift zip函数。似乎很有用。
zip
它需要2个输入数组,并从每个数组的值对中创建一个元组数组。
是否有zip的变体,可以接受任意数量的数组并输出具有相同数量元素的元组?似乎应该有一种方法可以做到这一点。
不,zip由于Swift缺乏可变参数泛型,因此目前无法实现任意数量的序列。泛型宣言中对此进行了讨论。
同时,我编写了一个gyb模板来生成自定义Arity的ZipSequences。3...10为了方便起见,我还预先生成了Arip的ZipSequences 。在这里可用。
gyb
3...10
实际上:
let integers = [1, 2, 3, 4, 5] let strings = ["a", "b", "c", "d", "e"] let doubles = [1.0, 2.0, 3.0, 4.0, 5.0] for (integer, string, double) in zip(integers, strings, doubles) { print("\(integer) \(string) \(double)") }
印刷品:
1分1.0 2分2.0 3分3.0 4天4.0 5 e 5.0
1分1.0
2分2.0
3分3.0
4天4.0
5 e 5.0