簡體   English   中英

在Swift中匯總數組值時出錯

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM