我想生成一个随机数,可以介于
-3...-8
和 3...8
我知道我可以找到一个迂回的方法来做到这一点,首先在 0 和 1 之间随机取一个整数,然后选择它的范围:
let zeroOrOne = CGFloat.random(in: 0...1)
if zeroOrOne == 0 {
randomNum = CGFloat.random(in: -3...-8)
} else {
randomNum = CGFloat.random(in: 3...8)
}
但我想知道是否有更好的方法。
最佳答案
我确定您想使用 Bool.random
。
一种写法是
let randomNum = CGFloat.random(in: 3...8) * (Bool.random() ? 1 : -1)
或
var randomNum = CGFloat.random(in: 3...8)
if Bool.random() {
randomNum.negate()
}
没有唯一正确的解决方案。
关于Swift:在多个范围之间生成随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55695004/