代码之家  ›  专栏  ›  技术社区  ›  esaruoho

如何使用swift将array.count结果移动-1?

  •  0
  • esaruoho  · 技术社区  · 5 年前

    我有一个数组,其中包含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,但我不知道怎么做。

    我该怎么做?

    1 回复  |  直到 5 年前
        1
  •  2
  •   esaruoho    5 年前

    使用起来更安全

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

    这个

        let nTSelectionProtect = nTSelection -1
    

    如果返回的随机数为零,将崩溃,此 nTSelection -1 -1


    还可以使用

    print(array.randomElement())