我很难看到将值传递给函数时使用哪种方法有明显的优势。我的下面的代码可能不是解释我试图做出的决定的最好例子,但在我看来,这是最容易理解的。
变量参数方法
func arithmeticMean(numbers: Double...) -> Double {
var total: Double = 0
for value in numbers {
total += value
}
return total / Double(numbers.count)
}
arithmeticMean(5, 10, 15)
数组参数方法
func arithmeticMean(numbers: [Double]) -> Double {
var total: Double = 0
for value in numbers {
total += value
}
return total / Double(numbers.count)
}
arithmeticMean([5, 10, 15])
这两种技术中的任何一种都是首选吗?如果是这样,为什么(速度,可靠性或只是易于阅读)?感谢。
答案 0 :(得分:5)
我认为没有速度差异。因为在函数内部,您使用Variadic Parameter
就像Array
一样。
我认为如果参数count很小,例如小于5,Variadic Parameter
可能是更好的解决方案,因为它易于阅读。
如果参数计数很大。数组是更好的解决方案。
另外要知道,Variadic Parameter
有一些限制:
一个函数最多只能有一个可变参数,并且它必须始终显示在参数列表的最后,以避免在调用具有多个参数的函数时出现歧义。
如果您的函数有一个或多个带有默认值的参数,并且还有一个可变参数,请将variadic参数放在列表最后的所有默认参数之后。
仅仅是我的想法。希望有用