如何扩展类型化数组(Array<T>)的功能?
大家好!我写Swift已经几个月了,遇到了需要为特定类型的数组添加自定义方法的情况。例如,我有一个数字数组 `[Int]`,想添加一个计算所有元素平方和的方法。或者字符串数组 `[String]`,想添加一个删除所有重复项的方法。
我尝试为Array写一个extension,但它适用于所有数组,而不仅仅是Int或String:
```swift
extension Array {
func sumOfSquares() -> Int? {
// 这里我无法保证Element是Int
return nil
}
}
```
编译器报错,说不能对Element执行`*`操作。我尝试使用where约束,但没有完全理解语法。请问如何正确扩展仅针对特定类型的Array?需要使用带约束的generics,还是有其他方法?提前感谢帮助!
<<>>