如何通过在 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
}
我创建了一个执行数字求和的函数,它接受 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
}