2015-02-12 34 views
14

Dizininin attığı dizide alın. Get Firefox 1.2'de, statik tipte bir Set oluşturmak için kullanabileceğiniz bir Set nesnesi vardır.Set <T>

Yalnızca nesneyi belirli bir dizine nasıl alacağımı bulamıyorum. Aşağıdakileri yapmanıza olanak veren bir subscript vardır: mySet[setIndex].

Bu, nesneyi setIndex adresinden alır. Ama şimdi belirli bir Int dizininden bir nesne almak istiyorum.

var sIndex = mySet.startIndex; var myObject = mySet[sIndex];

Ama nasıl belli 'endeksi' olan bir SetIndex oluşturabilirim? String benzer

+0

Bunu neden yapmak istersiniz? 'Set' sırasız, bu yüzden indeksler bir anlam ifade etmiyor. – Alexander

cevap

40

, sen

let mySet: Set = ["a", "b", "c", "d"] 
mySet[advance(mySet.startIndex, 2)] // -> something from the set. 

KATMA .startIndex den advance() zorunda: Xcode7 beta6/Swift2.0 itibariyle:

let mySet: Set = ["a", "b", "c", "d"] 
mySet[mySet.startIndex.advancedBy(2)] // -> something from the set. 

Swift 3

let mySet: Set = ["a", "b", "c", "d"] 
mySet[mySet.index(mySet.startIndex, offsetBy: 2)] // -> will print "d" as it advances by 2 
+10

Dizin 2'deki nesnenin mutlaka "c" olması gerektiğini unutmayın. Bir diziden (veya dizi hazırlayıcısından) bir set oluşturmak, verilen öğelerin sırasını korumaz. –

+0

Ah evet tabi ki. Bunun için OO kullanmamak çok doğal değil. Teşekkürler! –

+0

Xcode 7 Beta 6 –