在雨燕语种导游向您展示如何创建采取可变参数的函数。它还注意到参数被收集到一个数组中。
因此,如果我有示例功能sumOf,如指南中所述:
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
第二个函数也带有可变数量的参数,如何将相同的var_args值从第二个函数传递到第一个函数?
func avgOf(numbers: Int...) -> Int {
// Can't do this without the complier complaining about:
// "error: could not find an overload for '__conversion' that accepts the supplied arguments"
var sum = sumOf(numbers)
var avg = sum / numbers.count
return avg
}
sumOf和averageOf都采用Int的可变参数,这与Int数组不同。可变参数被转换为数组,尽管它是数字,但是您不能在数字上调用sumOf。
您可以通过以下方法解决此问题:创建一个带有可变参数的sumOf函数和一个类似arrary的函数:
func sumOf(numbers: Int...) -> Int {
return sumOf(numbers)
}
func sumOf(numbers: Int[]) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句