可变参数(Variadic Parameters)
一个可变参数(variadic parameter)可以接受零个或多个值。函数调用时,你可以用可变参数来指定函数参数可以被传入不确定数量的输入值。通过在变量类型名后面加入(...)的方式来定义可变参数。
可变参数的传入值在函数体中变为此类型的一个数组。例如,一个叫做 numbers 的 Double... 型可变参数,在函数体内可以当做一个叫 numbers 的 [Double] 型的数组常量。如下:累加函数中有一个默认参数值和一个可变参数
<pre name="code" class="plain">func sum(name:String = "man",numbers:Double...) ->Double{ var total:Double = 0 for number in numbers{ total+=number } return total }
注意:一个函数最多只能有一个可变参数。如果函数有一个或多个带默认值的参数,而且还有一个可变参数,那么把可变参数放在参数表的最后。
警告:如果必须有默认值的参数,并且有可变参数,那么可变参数numbers还是不要用忽略外部参数名“_”符号,即 “_ numbers” ,不然调用函数sum(1.5,1.9,2)会报错!因为编译器它无法判断我究竟是省略第一个参数(默认参数值)还是第一个参数入参错误。这应该算是swift的一个Bug吧。swift还在完善中,相信不就将来会解决的。
原文链接:https://www.f2er.com/swift/325079.html