簡體   English   中英

如何快速從數組中選擇隨機的十個(字符串)

[英]how to pick a random ten (String) from an array in swift

誰能教我如何使用arc4random_uniform()從數組中選擇一個項目( String arc4random_uniform() 我試過了,但不能,因為arc4random_uniform可用於選擇Int。

Swift 3擴展

盡管Oisdk答案有效,但擴展可能會比重復編寫該代碼更有用。

import Foundation

extension Array {

  func randomElement() -> Element  {
     if isEmpty { return nil }
     return self[Int(arc4random_uniform(UInt32(self.count)))]
  }
}

let myArray = ["dog","cat","bird"]

myArray.randomElement() //dog 
myArray.randomElement() //dog 
myArray.randomElement() //cat 
myArray.randomElement() //bird

用數組下標需要Int,但是arc4random_uniform返回UInt32。 因此,您只需要在這些類型之間進行轉換。

import Foundation

let array = ["ab", "cd", "ef", "gh"]

let randomItem = array[Int(arc4random_uniform(UInt32(array.count)))]

同樣,arc4random_uniform給出的隨機數要比其參數少。 因此,只需將array.count強制轉換為UInt32即可。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM