我有一个包含7个对象的数组,并且使用Array.count来获取数组中的对象数。
然后我使用Int.random(in: 0 ... arrayMax)从数组中获取一个随机对象。但是,因为数组中有7个对象,.count将返回7,我每隔一段时间就会得到一个错误,因为7显然是6
我试着这样解决这个问题:

let nTMax = Array.count
let nTSelection = Int.random(in: 0 ... nTMax)
print (nTMax, nTSelection)
let nTSelectionProtect = nTSelection -1

但是,nTSelectionProtect拒绝被接受。我希望做一个安全计算,这样7永远是6,但我不知道怎么做。
我该怎么做?

最佳答案

使用起来更安全

    let nTSelection = Int.random(in: 0..<nTMax)

这个
    let nTSelectionProtect = nTSelection -1

如果返回的随机数为零,则将崩溃,此nTSelection -1-1
您还可以使用
print(array.randomElement())

09-25 22:12