在Swift中生成两个整数值之间的随机值

Che*_*ile 20 random swift

我正在尝试在两个整数之间生成随机值.我试过这个,从0开始,

let randomNumber = arc4random_uniform(10)
println(randomNumber)
Run Code Online (Sandbox Code Playgroud)

但我需要10到50之间的值.

Bry*_*hen 60

试试这个

let randomNumber = arc4random_uniform(40) + 10
println(randomNumber)
Run Code Online (Sandbox Code Playgroud)

一般形式

let lower : UInt32 = 10
let upper : UInt32 = 50
let randomNumber = arc4random_uniform(upper - lower) + lower
println(randomNumber)
Run Code Online (Sandbox Code Playgroud)

  • 添加一个到`upper - lower`以便在这里允许50个结果(因为`arc4random_uniform(40)`将返回0到39范围内的整数) (3认同)

Chr*_*ris 20

使用新random()方法获得Swift 4.2的答案,这很容易!

let randomInt = Int.random(in: 10...50)
Run Code Online (Sandbox Code Playgroud)


mat*_*bor 10

如果您想要一个带有简单参数的可重用函数:

func generateRandomNumber(min: Int, max: Int) -> Int {
    let randomNum = Int(arc4random_uniform(UInt32(max) - UInt32(min)) + UInt32(min))
    return randomNum
}
Run Code Online (Sandbox Code Playgroud)