Swift 3 IteratorProtocol
文档说:“复制迭代器是安全的,但是通过调用它的next()
方法推进迭代器的一个副本可能会使该迭代器的其他副本无效。”
所以,这可能不起作用:
var i = set.makeIterator()
while let obji = i.next() {
var j = i
while let objj = j.next() { // Possible error : might invalidate i
...some code...
}
}
所以,我写了这个:
var objects = [Object](set)
for i in 0..<objects.count {
for j in (i+1)..<objects.count {
...some code...
}
}
但是如果没有在数组中复制集合,是不是有办法做同样的事情?
答案 0 :(得分:0)
Set
符合Sequence
,因此非常简单
let set = Set<Int>([1, 4, 7, 9])
for member in set {
print(member)
}