如何在Swift中植入Int.random方法调用?

时间:2019-03-02 23:23:10

标签: swift

我遇到一个问题,根据我从Int.random(:in)方法调用获得的随机数,我有一个测试用例失败。

我环顾四周,无法找到拨打相同电话的好方法,但能够为生成器提供您自己的种子。

有人知道这样做的好方法吗?

2 个答案:

答案 0 :(得分:1)

请参见https://developer.apple.com/documentation/swift/systemrandomnumbergenerator

SystemRandomNumberGenerator将自动成为种子。如果要使用自己的种子RNG,则必须自己实现,并遵守RandomNumberGenerator协议。

答案 1 :(得分:-3)

我了解到,您需要使用SystemRandomNumberGenerator从种子整数中获取随机整数。

种子项目是11、22、33、44、55、66、77、88或其他。 您实现:

let seed:[Int] = [11, 22, 33, 44, 55, 66, 77, 88]

然后调用func随机返回Int。

if seed.count > 0 {
   let number = Utils.random(from: seed)
}

具有随机功能:

class Utils: NSObject {
    class func random(from:[Int]) -> Int {
        let inline = (0..<from.count)
        var g = SystemRandomNumberGenerator()
        let i = Int.random(in: inline, using: &g)
        return from[i]
    }
}

希望,我现在知道你!