![](/img/trans.png)
[英]In Swift iOS, why are two identically sized nested UIImageViews different sizes?
[英]Swift: How does zip() handle two different sized collections?
zip() 函数接受两个序列并返回以下元组序列:
output[i] = (sequence1[i], sequence2[i])
然而,这些序列可能具有不同的维度。 我的问题是 Swift 语言如何处理这个问题?
文档完全没用。
在我看来,有两种可能性(在 Swift 中):
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)]
Apple 的zip(_:_:)
文档已经更新以回答这个问题:
https://developer.apple.com/documentation/swift/1541125-zip
如果传递给
zip(_:_:)
的两个序列长度不同,则生成的序列与较短的序列长度相同。 在此示例中,结果数组的长度与words
相同:let words = ["one", "two", "three", "four"] let naturalNumbers = 1...Int.max let zipped = Array(zip(words, naturalNumbers)) // zipped == [("one", 1), ("two", 2), ("three", 3), ("four", 4)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.