SWIFT函数形参数组回传数值
SWIFT函数的形参如果需要回传在函数中改变后的数值,需要在定义形参时加上关键字inout,并且调用函数时,形参前要加上取地址符号&,与普通C不同的是,数组名前也要加上&,不承认数组名代表数组的首地址。
下面是一个正确定义和调用的例子:
func sum( inout numb :[Int])->Int {
var sum : Int = 0
var i : Int
for (i=0; i<4; i++) {
numb[i] += 2
sum += numb[i]
}
return sum
}
var x : Int
var a : [Int] = [1,2,3,4]
x = sum(&a)
for n in a{
print("n is \(n)")
}
print("sum is \(x)")
运行后的返回值是:
n is 3
n is 4
n is 5
n is 6
sum is 18
上述例子在Swift2.1上通过,软件升级Swift5.3后,发现语法有了一些改动,出现两处错误。 一是inout需要放到数组变量名后面;二是不再支持C格式的for( )语句。 故将这两条语句改为:
(1) func sum ( numb: inout [Int] -> Int {
(2) for i in 0…3 {
其余不变,运行结果相同。