Swift 随机选择套装<T>

Swift pick random item of Set<T>

我知道,Set 是一个无序的数据结构,但是我想知道是否可以从 Set 的条目中选择一个随机对象。这在 Swift 中是否可行?如果是,如何实现?我可以使用 Swift 1.2 Set<T> 还是必须使用 NSMutableSet 甚至 NSOrderedSet

集合没有随机访问迭代器,但如果您愿意为集合长度的线性时间提前付出代价,您可以这样做:

import Darwin
let set = Set("supercalifragalisticexpialidocious")
let offset = Int(arc4random_uniform(UInt32(set.count)))
let idx = advance(set.startIndex, offset)

set[idx] // a random entry from set