[英]Error summing up the array values in Swift
我是Swift的新手。 在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_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)
该错误实际上是由于尝试使用下标将值附加到randArray
引起的。 您应该改为使用append
:
for _ in 0...num {
randArray.append(Double(arc4random_uniform(max+1)))
}
该错误不是来自函数reduce,而是在数组初始化时,您无法在初始化之前访问索引。 下面的代码修复了该错误。
for index in 0...num {
randArray.append(Double(arc4random_uniform(max+1)))
}
希望能有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.