swift - 计算参数的平均值

标签 swift function swift2 double

我正在学习“The Swift Programming Language”和相关的 playground 文件。

有人问我有一个部分: 编写一个函数来计算其参数的平均值。

鉴于上下文,这是我的解决方案

func averageOf(numbers: Int...) -> Int {
    var sum = 0
    var countOfNumbers = 0
    for number in numbers {
        sum += number
        countOfNumbers += 1
    }
    var result: Double = Double(sum) / Double(countOfNumbers)
    return result
}

averageOf()
averageOf(10, 20, 30)

如您所见,我必须将结果称为 Double(即总和/countOfNumbers)。

但是,在这种情况下我无法返回结果,因为我在转换“Double”类型的返回表达式时遇到错误。

然后我尝试返回 Double(result) 但没有成功。

为什么这不起作用,我如何才能最好地理解我在这里做错了什么?

最佳答案

只看你的代码(并没有给你另一个,从许多巧妙的方法中计算这个):你的函数期望返回类型 Int,但你返回 Double

下面是您的代码,其中包含注释更正:

func averageOf(numbers: Int...) -> Double {
    var sum = 0                  // ^ note the return type here
    var countOfNumbers = 0
    for number in numbers {
        sum += number
        countOfNumbers += 1
    }
    /* Note here: you declare 'result' to be of type Double */
    var result: Double = Double(sum) / Double(countOfNumbers)
    return result /* and return 'result'; hence returning a Double */
}

averageOf(10, 20, 30) // 20.0 <-- a Double

关于swift - 计算参数的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34936431/

相关文章:

oracle - 将 Crystal Report 命令参数传递给 Oracle 函数

swift - 安装失败 'Google GCM' swift

swift - Swift 如何将常量值处理为数学函数?

ios - 使用 MapKit 生成特定距离的路线

json - SwiftyJson 无法设置值

Python - 从函数返回多个值到不同的数组

javascript - 在 javascript 中返回另一个函数是一个好方法吗?

ios - 使用 JSONDecoder 后如何正确调用属性

ios - 为什么 "tableview.cellForRowAtIndexPath(indexPath)"给我一个 BAD_ACCESS 错误?

ios - 无法转换“[AnyObject ]'to expected argument type ' [UIViewController]”类型的值?