[英]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.