这个问题在这里已有答案:
在“Swift编程语言”,函数和闭包中,有一个示例代码来计算总数,如下所示:
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
作为以下实验的一部分,我尝试了以下函数来计算平均值
func averageOf(numbers : Int...) -> Int {
var argument:Array = numbers
var average = sumOf(argument) / numbers.count
return average
}
但是,我收到以下错误
[Int]不可转换为Int
我也试过以下一行没有成功var average = sumOf(numbers)/ numbers.count
有什么想法在下面发生吗?当本书明确指出时,为什么sumOf参数将其视为Int而不是数组
“函数也可以使用可变数量的参数,将它们收集到一个数组中 . ”
2 回答
在我看来,如果你试图正确调用它,你的功能是可以的 .
但是如果你想调用数组使用这段代码:
在函数中,你声明参数不是作为数组而是像未定义的整数量的主要问题
只需更改方法To的定义即可
代替
因为您将数组作为参数传递给 func sumOf 函数,这不是预期的定义 .