0

我很难找到一种方法来返回 1 到 9,000,000,000,000,000 之间的随机数

我使用 UInt32 制作了一个 randomNumberBetween 函数,但我无法使用 UInt64 做同样的事情。

我了解 arc4random_uniform 仅使用 UInt32。但是 UInt64 有替代品吗?

现在有人知道吗?

谢谢你的帮助!

let min:UInt32 = 1
let max:UInt32 = UINT32_MAX

func randomNumberBetween(min:UInt32, max:UInt32) -> UInt32 {
    let randomNumber = arc4random_uniform(max - min) + min
    return randomNumber
}

randomNumberBetween(min, max)
4

1 回答 1

0

arc4random在 Swift 中运行良好,但基本函数仅限于 32 位整数类型(Int在 iPhone 5S 和现代 Mac 上为 64 位)。这是任何类型的随机数的通用函数:

func arc4random <T: IntegerLiteralConvertible> (type: T.Type) -> T {
    var r: T = 0
    arc4random_buf(&r, UInt(sizeof(T)))
    return r
}

阅读此文档,希望对您有所帮助http://www.dahuatu.com/G9wRqYlmME.html

于 2015-08-12T05:11:12.157 回答