我创建了一个函数,该函数通过接受Int数组并将元素之和作为整数值返回来执行数字求和。以下是我的代码,经检查在逻辑上是正确的,但在运行时提及,控制台中的“索引超出范围”和“
错误:执行被中断,原因:EXC_BAD_INSTRUCTION(代码= EXC_I386_INVOP,子代码= 0x0)。
代码:
import UIKit
var x=[Int]()
var i=0
func dosomething(y:[Int])->Int{
for index in 0..<y.count{
if index==0{
x[index]=0
x[index]=x[index]+y[index]
i=x[index]
}
else{
x[index]=x[index-1]+y[index]
i=x[index]
}
}
return i
}
dosomething(y:[1,2,3])
答案 0 :(得分:7)
您可以直接使用像这样的高阶函数
[1,2,3].reduce(0, +)
答案 1 :(得分:2)
由于suppressWarnings
数组为空,并且您试图设置不存在的值,所以会出现错误。您应该首先创建该值,然后将其更改为所需的值,以这种方式更改方法:
X