我正在学习“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/