如何在Swift中将[Int]转换为Int ...?

时间:2015-07-09 05:17:30

标签: ios swift type-conversion

我正在执行GuideTour Playground for Swift中的任务 并且有一个总和函数:

func sumOf(numbers: Int...) -> Int {
    var sum = 0
    for number in numbers {
        sum += number
    }
    return sum
}

之后有一项任务: 编写一个计算其参数平均值的函数。

我想写像:

func avg(numbers: Int...) -> Double {
    return Double(sumOf(numbers)) / Double(numbers.count)
}

但是XCode显示警告:'[Int]'无法转换为'Int'

有人知道如何进行转换吗?

PS:我知道我可以使用Array-parameter获得解决方案。我只对'Int ...'的解决方案感兴趣。这只是学术兴趣。

1 个答案:

答案 0 :(得分:0)

使用reduce

而不是编写函数来获取Int数组的总和
func avg(numbers: [Int]) -> Double {
    return numbers.reduce(0) { $0 + $1 } / Double(numbers.count)
}