你如何映射Zip2的值?

all*_*tom 5 swift

我有两个数组喜欢[1, 2, 3]["a", "b", "c"]我想的压缩值映射过(1, "a"),(2, "b")(3, "c")使用ZIP2.

如果我这样做:

let foo = map(Zip2([1, 2, 3], ["a", "b", "c"]).generate()) { $0.0 }
Run Code Online (Sandbox Code Playgroud)

foo有类型ZipGenerator2<IndexingGenerator<Array<Int>>, IndexingGenerator<Array<String>>>?.

有没有办法让这个数组?

fqd*_*qdn 6

以下将从Zip2的返回值获取一个数组:

var myZip = Zip2([1, 2, 3], ["a", "b", "c"]).generate()
var myZipArray: Array<(Int, String)> = []

while let elem = myZip.next() {
    myZipArray += elem
}

println(myZipArray)    // [(1, a), (2, b), (3, c)]
Run Code Online (Sandbox Code Playgroud)

- 更新:更好! -

let myZip = Zip2([1, 2, 3], ["a", "b", "c"])
let myZipArray = Array(myZip)

println(myZipArray)    // [(1, a), (2, b), (3, c)]
Run Code Online (Sandbox Code Playgroud)

- 现在好玩 -

我猜我们可以使用响应的任何东西初始化一个新数组generate()

println(Array("abcde"))  // [a, b, c, d, e]
Run Code Online (Sandbox Code Playgroud)