我对斯威夫特不熟悉。在Playground中尝试此代码并得到错误(请参阅下面的描述)可以,请,将我指向正确的方向-在哪里寻找解决方案?提前谢谢。

func randomSet(num: Int, max: Int) -> Array<Double> {

    var randArray = Array<Double>()

    for index in 0...num {
        randArray[index] = Double(arc4random_uniform(max+1))
    }

ERROR: var sum = randArray.reduce(0) {$0 + $1}

    for index in 0...num {
        randArray[index] = randArray[index] / Double(sum) * Double(max)
    }

    return randArray
}

test = randomSet(10, 100)

在标有单词ERROR的行上,我得到:
执行被中断,原因:EXC_BAD_指令(代码=EXC_I386_INVOP,子代码=0x0)

最佳答案

该错误实际上是由于尝试使用订阅在randArray中附加值而导致的。您应该改用append

for _ in 0...num {
    randArray.append(Double(arc4random_uniform(max+1)))
}

关于swift - 在Swift中汇总数组值时出错,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28328928/

10-11 11:51