假设我有一个数组,我想随机选取一个元素.
最简单的方法是什么?
最明显的方法是array[random index]
.但也许有类似ruby's array.sample
的东西?或者,如果不是这样,是否可以使用扩展创建这样的方法?
假设我有一个数组,我想随机选取一个元素.
最简单的方法是什么?
最明显的方法是array[random index]
.但也许有类似ruby's array.sample
的东西?或者,如果不是这样,是否可以使用扩展创建这样的方法?
Swift 4.2 and above
新推荐的方法是收集协议上的内置方法:randomElement()
.它返回一个可选值,以避免前面假设的空情况.
let array = ["Frodo", "Sam", "Wise", "Gamgee"]
print(array.randomElement()!) // Using ! knowing I have array.count > 0
If you don't create the array and aren't guaranteed count > 0, you should do something like:
if let randomElement = array.randomElement() {
print(randomElement)
}
Swift 4.1 and below
为了回答您的问题,您可以这样做来实现随机数组 Select :
let array = ["Frodo", "sam", "wise", "gamgee"]
let randomIndex = Int(arc4random_uniform(UInt32(array.count)))
print(array[randomIndex])
这些铸件很难看,但我相信它们是必需的,除非其他人有别的办法.