如何使用Swift生成范围(10…20)内的随机数

我可以为游戏中的物品选择一个随机数,但是可以选择两个数字之间的随机数吗?

所以代替

let number = (arc4random_uniform(100))

我想要这样的东西:

let number = (arc4random_uniform(10...20))

或类似的东西?现在,如果我得到了放下武器的信息,那么它可能就是清单中的所有内容。这样我就可以做到,这样只有前几个会掉落特定怪物,或者在更高等级时他们会掉落更好的武器,而不是低等级。

回答:

extension Range where Bound: FixedWidthInteger {

var random: Bound { .random(in: self) }

func random(_ n: Int) -> [Bound] { (0..<n).map { _ in random } }

}


extension ClosedRange where Bound: FixedWidthInteger  {

var random: Bound { .random(in: self) }

func random(_ n: Int) -> [Bound] { (0..<n).map { _ in random } }

}

对于较早的Swift版本,请检查编辑历史记录

(10...20).random    // 16

(0...1).random(10) // [0, 1, 0, 0, 1, 1, 1, 1, 1, 0]

以上是 如何使用Swift生成范围(10…20)内的随机数 的全部内容, 来源链接: utcz.com/qa/408914.html

回到顶部