1
Swift 3 IteratorProtocol
マニュアルでは、「イテレータをコピーするのは安全ですが、イテレータのコピーを先に進めてnext()
メソッドを呼び出すと、そのイテレータの他のコピーが無効になる可能性があります。Set(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、あなたは正しい、私はセットの要素のすべてのペアを列挙するためにネストループが必要です。質問のタイトルを編集してそのことを明確にしました。 –