我对Swift如何推断num1
和num2
是整数感到困惑。该函数正在接受一个Ints数组,是的,但是现在num1
和num2
与Ints数组相关的swift如何?
func mean4 (numbers: [ Int ] ) -> Double {
let sum = numbers.reduce(0, combine: { num1, num2 in
return num1 + num2 04: })
答案 0 :(得分:3)
NUM2
由于numbers
数组的类型为[Int]
,因此它知道num2
或下一个元素将是Int
。
NUM1
因为您的起始值为0
,所以它推断出缩减值,或num1
也是Int
答案 1 :(得分:2)
reduce
函数定义为:
extension SequenceType {
public func reduce<T>(initial: T, @noescape combine: (T, Self.Generator.Element) -> T) -> T
}
Self.Generator.Element引用数组元素类型,即Int。这意味着num2
是一个Int。从您传递的初始值0
开始,它可以推断出T
也是一个Int。