Arrays 如何在swift中从数组中随机选取十(字符串)
有人能教我如何使用Arrays 如何在swift中从数组中随机选取十(字符串),arrays,swift,Arrays,Swift,有人能教我如何使用arc4random\u uniform()从数组中选择一个项目(String)吗?我试过了,但没有成功,因为arc4random\u uniform可用于选择Int。订阅数组需要和Int,但arc4random\u uniform返回UInt32。所以您只需要在这些类型之间进行转换 import Foundation let array = ["ab", "cd", "ef", "gh"] let randomItem = array[Int(arc4random_uni
arc4random\u uniform()
从数组中选择一个项目(String
)吗?我试过了,但没有成功,因为arc4random\u uniform
可用于选择Int。订阅数组需要和Int,但arc4random\u uniform返回UInt32。所以您只需要在这些类型之间进行转换
import Foundation
let array = ["ab", "cd", "ef", "gh"]
let randomItem = array[Int(arc4random_uniform(UInt32(array.count)))]
此外,arc4random_uniform给出的随机数小于其参数。所以只要将array.count强制转换为UInt32,它就可以工作。订阅数组需要和Int,但arc4random\u uniform返回UInt32。所以您只需要在这些类型之间进行转换
import Foundation
let array = ["ab", "cd", "ef", "gh"]
let randomItem = array[Int(arc4random_uniform(UInt32(array.count)))]
此外,arc4random_uniform给出的随机数小于其参数。所以只要将array.count强制转换为UInt32,它就会工作。swift3扩展 虽然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
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
看一看基本上如上面的问题所示,你只需要将随机数声明为整数,如so
Int(randomNumber)
,这使你的数字类型成为整数而不是uint32我的意思是如何将字符串形式转换为整数?看一看基本上如上面的问题所示,您只需将随机数声明为整数,如soInt(randomNumber)
,这使您的数字类型成为整数而不是UINT32。我的意思是如何将字符串形式转换为整数?如果没有项,这将崩溃。如果没有项,这将崩溃。