المولدات
المولد (Generator) هو دالة خاصة تُنتج قيماً باستخدام الكلمة المفتاحية أنتج. عند استدعاء دالة مولد، يتم تنفيذها وتجميع كل قيم أنتج في مصفوفة تُرجع عند الانتهاء.
التركيب الأساسي
sad
دالة مولد أعداد()
أنتج 10
أنتج 20
أنتج 30
نهاية
متغير النتيجة = أعداد()
اطبع_سطر(النتيجة) # [10, 20, 30]
# التكرار على النتيجة
لكل عنصر في النتيجة
اطبع_سطر(عنصر)
نهايةملاحظة مهمة
الترتيب الصحيح هو دالة مولد (وليس مولد دالة). المولدات في لغة ص حالياً تجمع كل القيم فوراً (eager) وتُرجعها كمصفوفة.
مثال: إنتاج تسلسل
sad
دالة مولد أزواج(حد)
أنتج 2
أنتج 4
أنتج 6
أنتج 8
أنتج 10
نهاية
لكل رقم في أزواج(5)
اطبع_سطر(رقم)
نهايةمتى تستخدم المولدات؟
| الحالة | لماذا مولد؟ |
|---|---|
| إنتاج تسلسل قيم | بديل أنظف من بناء مصفوفة يدوياً |
| فصل الإنتاج عن الاستهلاك | كود أوضح وأسهل للصيانة |
| تجميع نتائج متعددة | بدلاً من ارجع واحد |
الفرق بين ارجع وأنتج
ارجعتنهي الدالة نهائياً وتُرجع قيمة واحدةأنتجتضيف قيمة إلى المصفوفة الناتجة — الدالة تكمل التنفيذ بعدها
التالي: البرمجة غير المتزامنة ←