Wie man zufälliges element aus einer Gruppe in Swift?

Als der Swift 1.2, Apple stellt Set Sammlung geben.

Sagen, ich habe einen Satz wie:

var set = Set<Int>(arrayLiteral: 1, 2, 3, 4, 5)

Nun möchte ich, um ein zufälliges element aus ihm heraus. Frage ist, wie? Set nicht subscript(Int) wie Array tut. Stattdessen hat er subscript(SetIndex<T>). Aber Erstens SetIndex<T> nicht zugänglich Initialisierungen (daher kann ich nicht einfach nur einen index erstellen, mit dem offset, die ich brauche), und zweitens, selbst wenn ich den index für das erste element in einem set ( var startIndex = set.startIndex ), dann ist die einzige Möglichkeit, die ich bekommen kann, um den N-TEN index wird durch aufeinanderfolgende Aufrufe successor().

Daher sehe ich nur 2 Optionen im moment, beide hässlich und teuer:

  • Konvertieren das set in array (var array = [Int](set)) und seine Tiefstellung (was vollkommen akzeptiert Int); oder
  • Bekommen index des ersten Elements im set, Durchlaufen die Kette von successor() Methoden zum abrufen des N-TEN index und Lesen Sie dann entsprechende element mittels set ist Tiefgestellt.

Vermisse ich einige andere Möglichkeit?

InformationsquelleAutor courteouselk | 2015-02-12
Schreibe einen Kommentar