...语法在函数参数中意味着什么
例如
func setupViews(views: UIView...) {
...
}
我最近在一些教程中看到了这个,据我所知它只是一个UIViews数组。
这与编写
相同func setupViews(views: [UIView]) {
...
}
或者有区别吗?
答案 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.
在这个例子中'数字'将是一个双数组的数组。