Avatar ·

كيفية توسيع وظائف المصفوفات المكتوبة (Array<T>) في Swift؟

مرحباً بالجميع! أنا أكتب بلغة Swift منذ عدة أشهر وواجهت موقفاً أحتاج فيه إلى إضافة دوال خاصة بي إلى مصفوفات من نوع معين. على سبيل المثال، لدي مصفوفة أرقام `[Int]`، وأريد إضافة دالة لحساب مجموع مربعات جميع العناصر. أو مصفوفة نصوص `[String]`، وأريد إضافة دالة لحذف جميع التكرارات.\n\nحاولت كتابة extension للمصفوفة Array، لكنه ينطبق على جميع المصفوفات وليس فقط على Int أو String:\n\n```swift\nextension Array {\n func sumOfSquares() -> Int? {\n // هنا لا يمكنني ضمان أن Element هو Int\n return nil\n }\n}\n```\n\nالمترجم يشتكي من أنه لا يمكن تنفيذ العملية `*` على Element. حاولت استخدام where constraints، لكنني لم أفهم الصيغة بشكل كامل. أرجو توضيح كيفية توسيع Array بشكل صحيح.