Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

ميزات اللغة الوظيفية: المكررات والإغلاقات (Functional Language Features: Iterators and Closures)

استلهم تصميم لغة Rust من العديد من اللغات والتقنيات الموجودة، وكان أحد التأثيرات الهامة هو البرمجة الوظيفية (functional programming). غالباً ما تتضمن البرمجة بالأسلوب الوظيفي استخدام الدوال كقيم من خلال تمريرها في معاملات (arguments)، وإرجاعها من دوال أخرى، وتعيينها لمتغيرات (variables) لتنفيذها لاحقاً، وما إلى ذلك.

في هذا الفصل، لن نناقش مسألة ماهية البرمجة الوظيفية أو ما ليست عليه، بل سنناقش بدلاً من ذلك بعض ميزات Rust التي تشبه الميزات الموجودة في العديد من اللغات التي يشار إليها غالباً بأنها وظيفية.

بشكل أكثر تحديداً، سنغطي ما يلي:

  • الإغلاقات (Closures): وهي بنية تشبه الدالة يمكنك تخزينها في متغير.
  • المكررات (Iterators): وهي طريقة لمعالجة سلسلة من العناصر.
  • كيفية استخدام Closures و Iterators لتحسين مشروع الإدخال والإخراج (I/O project) في الفصل الثاني عشر.
  • أداء Closures و Iterators (تنبيه: إنها أسرع مما قد تعتقد!).

لقد غطينا بالفعل بعض ميزات Rust الأخرى، مثل مطابقة الأنماط (pattern matching) والتعدادات (enums)، والتي تأثرت أيضاً بالأسلوب الوظيفي. ولأن إتقان Closures و Iterators يعد جزءاً مهماً من كتابة كود Rust سريع واحترافي (idiomatic)، فسنخصص هذا الفصل بالكامل لهما.