ما هو ال كلوجر Closure :
هو عبارة عن دالة ولكن لا يشترط ان يكون لها اسم , ونقم بإستخدام الكلوجر بدل الدالة في حال اردنا استخدام هذا البلوك البرمجي لمرة واحدة فقط.
كيف نستخد الكلوجر ؟
لكي نستحدم الكلوجر نقوم بحجز مساحه له عن طريق تعريق متغير يحمل قيمة هذا الكلوجر .
*الكلوجر تماماً مثل خصائص الدوال فهناك كلوجر يرجع قيمة واخر لا يرجع قيمة ويمكن للكلوجر ان يستقبل بارامترات وممكن ان لا يستقبل .
الصيغة العامة للكلوجر :
{var clus = {(parameter) -> return type in statements
قمنا بتعريف متغير لكي نحجز قيمة لهذا الكلوجر ومن ثم فتحنا بلوك {} وداخل الاقواس نمتب البارامتر ان كان هذا الكلوجر يستقبل بارامتر وان كان الكلوجر يرجع قيمة نضع بدل كلمة type نوع القيمة المراد ارجاعها و كلمة in الزامية و نستبدل كلمة statements بالكود البرمجي المراد تنفيذه من هذا الكلوجر .
مثال :
{(” var clusName = {() -> () in print(” Hareth
في هذا المثال قمنا بتعريف كلوجر لا يستقبل اي قيمة ولا يرجع قيمة فقط يحتوي على جملة طباعة.
لنتعرف على النوع الاخر , كلوجر يستقبل بارامترات ويرجع قيمة :
مثال :
في هذا المثال عرفنا في البداية مصفوفة تحتوي خمس قيم وقمنا بإستدعاء دالة جاهزة اسمها stored وظيفتها ترتيب العناصر من الصغير الى الكبير وداخل الكلوجر في كل مرة يأخذ قيمتين a,b ويرجع اذا كانت a<b .