Swift 如何为集合类型编写扩展

Swift 如何为集合类型编写扩展,swift,Swift,这段代码显示了我想做什么。尽管我在这一行上得到了一个错误:sum+=num。我得到的错误是:找不到接受提供的参数的“+=”的重载 我假设这个错误与数组可以包含很多不同的类型有关,而不仅仅是Int类型,所以它被窃听了。但是如何修复呢 目前没有一种方法仅扩展特定类型的数组(数组)。这将是一个伟大的请求,请提交到bugreport.apple.com 同时,您可以执行以下操作(不在扩展中): 所需的只是显式转换到Int: func sum(ints:Int[]) -> Int { ret

这段代码显示了我想做什么。尽管我在这一行上得到了一个错误:
sum+=num
。我得到的错误是:
找不到接受提供的参数的“+=”的重载


我假设这个错误与数组可以包含很多不同的类型有关,而不仅仅是Int类型,所以它被窃听了。但是如何修复呢

目前没有一种方法仅扩展特定类型的
数组
数组
)。这将是一个伟大的请求,请提交到bugreport.apple.com

同时,您可以执行以下操作(不在扩展中):


所需的只是显式转换到
Int

func sum(ints:Int[]) -> Int {
    return ints.reduce(0, +)
}

+1为减少。顺便说一句,你是通过实验发现的还是在某个地方有关于数组类型的文档?你可以命令单击Xcode中的数组来查看为Itahh生成的“头”,很好,很惊讶我还不知道。谢谢令人惊叹的。你太棒了。这有点不幸,因为对于非Int数组,它仍然会自动完成,但是如果你在它们上使用它,它会崩溃。但对于Int数组来说效果很好。我想知道人们开始编写自己的集合类需要多长时间。
func sum(ints:Int[]) -> Int {
    return ints.reduce(0, +)
}
extension Array {
    func Sum() -> Int {
        var sum = 0

        for num in self {
            sum += (num as Int)
        }

        return sum
    }
}

println([1,2,3].Sum()) //6