Swift - 函数参数中的含义是什么?

时间:2016-08-29 15:53:04

标签: swift

...语法在函数参数中意味着什么

例如

func setupViews(views: UIView...) {
  ...
}

我最近在一些教程中看到了这个,据我所知它只是一个UIViews数组。

这与编写

相同
func setupViews(views: [UIView]) {
   ...
}

或者有区别吗?

1 个答案:

答案 0 :(得分:3)

它代表了一个Variadic Paramater,来自docs

  

可变参数接受零个或多个指定类型的值。   您使用可变参数来指定参数可以   调用函数时传递了不同数量的输入值。   通过插入三个句点字符(...)来写出可变参数   在参数的类型名称之后。

     

传递给可变参数的值在其中可用   函数的主体作为适当类型的数组。例如,   变量参数,其名称为数字,类型为Double...   在函数体内作为常量数组可用   被称为[Double]类型的数字。

     

下面的例子计算算术平均值(也称为   平均值)列出任意长度的数字:

func arithmeticMean(numbers: Double...) -> Double {
    var total: Double = 0
    for number in numbers {
        total += number
    }
    return total / Double(numbers.count)
}
arithmeticMean(1, 2, 3, 4, 5)
// returns 3.0, which is the arithmetic mean of these five numbers
arithmeticMean(3, 8.25, 18.75)
// returns 10.0, which is the arithmetic mean of these three numbers

每个功能只能有一个Variadic Param。

如您所见,[Double]Double...

的输入参数之间存在细微差别

使用带有Variadic参数的函数时,您不需要将对象/值作为数组传递。

思考的食物;你怎么称呼这种方法? func arithmeticMean(numbers: [Double]...) -> Double

像这样:

arithmeticMean([1, 2, 3, 4, 5], [5, 4, 3, 2, 1]) // you could keep adding more and more arrays here if desired.

在这个例子中'数字'将是一个双数组的数组。