السلام عليكم بما اني جديد في استخدام لغة الاسس لدي بعض التساؤلات :
1 - كيف يمكن عمل متغير في ال module من نوع Callback والذي يأخذ function وكيف يمكنني استدعاء هذه ال function فمثلاً في php موجود call_user_func
2 - كيف يمكن عمل static methods في ال module او ال class
3 - ما الفرق بين module و class
وعليكم السلام ورحمة الله.
1- الcallback في الأسس عبارة عن مؤشر على دالة. فإذا أردت استلام callback فتحتاج لتعريف الصنف على أنه مؤشر على دالة. مثلا:
عرف م: مؤشر[دالة (صحيح): صحيح]؛
أما إذا أردت تمرير callback فتحتاج لتعريفها على أنها دالة ثم تمرير مؤشر لها. مثلا:
دالة اطبع_النتيجة (…) { … }
…
عالج_معلومات(اطبع_النتيجة~مؤشر)
2- الدالات الستاتك تُعمل باستخدام المبدل @مشترك (@shared)، أي أنه تعريف مشترك بين كل كائنات ذلك الصنف بدل أن يكون خاصًا بكائن واحد.
3- الmodule مجرد مجلد لترتيب شفرتك المصدرية (أي أنه مطابق لnamespace في لغات أخرى مثل سي++ وسي شارب)، بينما الtype هو الclass الذي في لغات أخرى، أي أنه صنف يمكن أن تنشئ منه متغيرات.
شكراً لك … ولكن هل يمكنك ارفاق النسخة الانجليزية للاكواد ؟
نعم
def pf: ptr[func (int):int]
func printResult (...) { ... }
...
processData(printResult~ptr)
طبعا أسماء الدالات هنا مجرد أمثلة افتراضية وليست أسماء لدالات موجودة فعلًا.
@AbdallahMohammed كما وعدتك هذا شرح انشاء مكتبة غطاء لمكتبة في لغة C