Avatar ·

Wie erweitere ich die Funktionalität von typisierten Arrays (Array<T>) in Swift?

Hallo zusammen! Ich schreibe seit ein paar Monaten in Swift und bin auf eine Situation gestoßen, in der ich eigene Methoden zu Arrays eines bestimmten Typs hinzufügen muss. Zum Beispiel habe ich ein Zahlen-Array `[Int]` und möchte eine Methode hinzufügen, um die Summe der Quadrate aller Elemente zu berechnen. Oder ein String-Array `[String]`, zu dem ich eine Methode hinzufügen möchte, um alle Duplikate zu entfernen.\n\nIch habe versucht, ein extension für Array zu schreiben, aber es wird auf alle Arrays angewendet, nicht nur auf Int oder String:\n\n```swift\nextension Array {\n func sumOfSquares() -> Int? {\n // Hier kann ich nicht garantieren, dass Element ein Int ist\n return nil\n }\n}\n```\n\nDer Compiler meckert, dass die Operation `*` nicht auf Element angewendet werden kann. Ich habe versucht, where-Einschränkungen zu verwenden, aber die Syntax nicht ganz verstanden. Könnt ihr mir sagen, wie man Array richtig erweitert?