如何通过在 swift playground 中传递 Int 数组来创建求和函数并调用它?

How to create a summation function and call it, by passing Int array in swift playground?

我创建了一个执行数字求和的函数,它接受 Int 数组并将元素总和作为整数值返回。下面是我的代码,我检查它在逻辑上是正确的,但我在运行时遇到错误,'index out of range' 在控制台和“

error: Execution was interrupted, reason: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=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])

你可以像这样直接使用高阶函数

[1,2,3].reduce(0, +)

您收到错误消息是因为 X 数组为空并且您试图设置不存在的值。您应该首先创建该值,然后将其更改为您想要的值,以这种方式更改您的方法:

func dosomething(y:[Int])->Int{
    x = [Int]()
    for index in 0..<y.count{
        if index==0{
            x.append(0)
            x[index]=x[index]+y[index]
            i=x[index]
        }
        else{
            x.append(0)
            x[index]=x[index-1]+y[index]
            i=x[index]
        }
    }
    return i
}