Avatar ·

Como estender a funcionalidade de arrays tipados (Array<T>) em Swift?

Olá a todos! Estou programando em Swift há alguns meses e me deparei com uma situação onde preciso adicionar meus próprios métodos a arrays de um tipo específico. Por exemplo, tenho um array de números `[Int]` e quero adicionar um método para calcular a soma dos quadrados de todos os elementos. Ou um array de strings `[String]`, ao qual quero adicionar um método para remover todas as duplicatas. Tentei escrever uma extension para Array, mas ela se aplica a todos os arrays, não apenas a Int ou String: ```swift extension Array { func sumOfSquares() -> Int? { // Aqui não posso garantir que Element seja Int return nil } } ``` O compilador reclama que não é possível realizar a operação `*` em Element. Tentei usar restrições where, mas não entendi completamente a sintaxe. Alguém pode me ajudar a estender corretamente um Array?