Avatar ·

如何扩展类型化数组(Array<T>)的功能?

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

使用带where约束的扩展