可变参数v数组参数

我很难看到在将值传递给函数时,使用哪种方法有明显的优势。 我下面的代码可能不是解释我正在尝试做出的决定的最好例子,但我认为这是最容易理解的。

变量参数方法

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]) 

两种技术中的任何一种都是首选吗? 如果是这样,为什么(速度,可靠性或只是易于阅读)? 谢谢。

我认为没有速度差异。因为在函数内部,你使用Variadic Parameter就像Array

  1. 我认为如果参数count很小,例如小于5, Variadic Parameter可能是更好的解决方案,因为它易于阅读。

  2. 如果参数计数很大。 数组是更好的解决方案

也知道, Variadic Parameter有一些限制:

一个函数最多只能有一个可变参数,并且它必须始终出现在参数列表的最后,以避免在调用具有多个参数的函数时出现歧义。

如果您的函数具有一个或多个具有默认值的参数,并且还具有可变参数,请将variadic参数放在列表最后的所有默认参数之后。

只是从我的想法。希望有帮助