1
Документация Swift 3 IteratorProtocol
гласит: «Копирование итератора безопасно, но продвижение одной копии итератора путем вызова его метода может аннулировать другие копии этого итератора».Перечисление пар элементов в наборе (Swift 3)
Таким образом, это не может работать:
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...
}
}
Но это не есть способ сделать то же самое, не копируя набор в массиве ?
Если я правильно понял вопрос правильно, OP нужен вложенный цикл, чтобы перечислить все * пар * элементов в наборе. –
@MartinR oops, может быть, но * пары * будут * случайными парами * из-за неупорядоченной природы набора. – vadian
@MartinR, вы правы, мне нужен вложенный цикл, чтобы перечислять все пары элементов в наборе. Я редактировал заголовок вопроса, чтобы сделать это ясно. –