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 بشكل صحيح.