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

时间:2015-08-19 17:07:37

标签: xcode swift closures type-inference

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

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

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

return num1 + num2 04: })

2 个答案:

答案 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。