extension Array {
func sum() -> Int {
var sum = 0
for num in self {
sum += num
}
return sum
}
}
[1,2,3].sum()
这段代码展示了我想做什么。虽然我在这一行收到错误:sum += num
。我得到的错误是:找不到接受提供的参数的“+=”的重载
。
我假设这个错误与 Array 可以包含许多不同类型的事实有关,而不仅仅是 Int,所以它被窃听了。但是怎么修呢?
最佳答案
目前没有办法只扩展特定类型的 Array
(在本例中为 Array<Int>
)。在 bugreport.apple.com 上提交申请是一个很好的请求
同时你可以这样做(不是在扩展中):
func sum(ints:Int[]) -> Int {
return ints.reduce(0, +)
}
关于swift - 如何为集合类型编写扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24008827/