我刚刚发现了Swift zip功能.这似乎非常有用.
它需要2个输入数组,并从每个数组的值对中创建一个元组数组.
不,由于斯威夫特缺乏可变参数,因此目前无法使用任意数量的序列拉链.这将在
the Generics Manifesto中讨论.
同时,我写了一个gyb模板,用于生成自定义arity的ZipSequences.为方便起见,我还预先生成了arity 3 … 10的ZipSequences. It’s available here.
在行动:
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 a 1.0
2 b 2.0
3 c 3.0
4 d 4.0
5 e 5.0