我正在努力查看将值传递给函数时使用哪种方法是否有明显的优势。下面的代码可能不是解释我要做出的决定的最佳示例,但我认为这是最容易理解的示例。
可变参数方法
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。
Variadic Parameter
Array
我认为如果参数数量较少(例如小于5个),Variadic Parameter则因为易于阅读,可能是一个更好的解决方案。
如果参数数量很大。数组是更好的解决方案。
也知道,Variadic Parameter有一些限制:
一个函数最多可以有一个可变参数,并且必须始终出现在参数列表的最后,以避免在调用带有多个参数的函数时产生歧义。 如果您的函数具有一个或多个具有默认值的参数,并且还具有可变参数,则将可变参数放在所有默认参数之后,并位于列表的末尾。
一个函数最多可以有一个可变参数,并且必须始终出现在参数列表的最后,以避免在调用带有多个参数的函数时产生歧义。
如果您的函数具有一个或多个具有默认值的参数,并且还具有可变参数,则将可变参数放在所有默认参数之后,并位于列表的末尾。
仅出于我的想法。希望有所帮助