Swift - 从另一个函数调用函数时出错

时间:2014-06-08 07:08:14

标签: ios swift

关注Apple的书"The Swift Programming Language"

我在处理“实验 - 编写一个计算其参数平均值的函数”时遇到了一个问题。从第一章开始。

为了确定一组数字的平均值,我想重用我的数字之和[setOf(numbers:Int ...)]函数并除以数字的数量[numbers.count]。我收到错误:

Could not find an overload for '__conversions' that accepts the supplied arguments  

当我尝试从我的sumOf(numbers)函数中调用averageOf(numbers)时。

如果我的sumOf(numbers)功能正确调用averageOf(numbers)功能,我应该更改哪些内容?

func sumOf(numbers: Int...) -> Int {
    var sum = 0 //0
    for number in numbers {
        sum += number
    }
    return sum  //651
}
sumOf(42, 597, 12)  //651

func averageOf(numbers: Int...) -> Int {
    var sum = sumOf(numbers) //Issue in this line
    return  sum / numbers.count
}
averageOf(42, 597, 12)

将上面的代码粘贴到新的Xcode 6游乐场中以重新创建。

Error Screenshot(在发布图片之前我需要10个声望点。)

1 个答案:

答案 0 :(得分:0)

您正在传递函数所需的其他类型。显然Int...Int[]不同。

您可以创建一个接受Int[]的覆盖并返回总和。