swift 如何推断 num1 和 num2 是整数?

How does swift infer that num1 and num2 are integers?

我对 Swift 如何推断 num1num2 是整数感到困惑。该函数正在接受一个 Ints 数组,是的,但是 swift 现在 num1num2 如何与 Ints 数组相关???

func mean4 (numbers: [ Int ] ) -> Double {

let sum = numbers.reduce(0, combine: { num1, num2 in 

return num1 + num2 04: })

num2

因为 numbers 数组的类型是 [Int],它知道 num2 或下一个元素将是 Int

num1

因为你的起始值是0,它推断出减少值,或者num1也是一个Int

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。