Avatar ·

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

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