【发布时间】:2014-07-25 14:48:52
【问题描述】:
在 Swift 中,如何将 Array 转换为 Tuple?
问题出现是因为我试图在一个接受可变数量参数的函数内部调用一个接受可变数量参数的函数。
// Function 1
func sumOf(numbers: Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
// Example Usage
sumOf(2, 5, 1)
// Function 2
func averageOf(numbers: Int...) -> Int {
return sumOf(numbers) / numbers.count
}
这个averageOf 实现对我来说似乎是合理的,但它无法编译。当您尝试调用sumOf(numbers) 时会出现以下错误:
Could not find an overload for '__converstion' that accepts the supplied arguments
在averageOf 内部,numbers 的类型为Int[]。我相信sumOf 期待的是一个元组而不是一个数组。
因此,在 Swift 中,如何将 Array 转换为 Tuple?
【问题讨论】:
-
该参数不是元组,是可变参数,在函数内部隐式转换为该类型的数组。
标签: arrays swift variadic-functions