بعض التساؤلات في لغة الاسس

السلام عليكم بما اني جديد في استخدام لغة الاسس لدي بعض التساؤلات :
1 - كيف يمكن عمل متغير في ال module من نوع Callback والذي يأخذ function وكيف يمكنني استدعاء هذه ال function فمثلاً في php موجود call_user_func
2 - كيف يمكن عمل static methods في ال module او ال class
3 - ما الفرق بين module و class

1 Like

وعليكم السلام ورحمة الله.

1- الcallback في الأسس عبارة عن مؤشر على دالة. فإذا أردت استلام callback فتحتاج لتعريف الصنف على أنه مؤشر على دالة. مثلا:

عرف م: مؤشر[دالة (صحيح): صحيح]؛

أما إذا أردت تمرير callback فتحتاج لتعريفها على أنها دالة ثم تمرير مؤشر لها. مثلا:

دالة اطبع_النتيجة (…) { … }

عالج_معلومات(اطبع_النتيجة~مؤشر)

2- الدالات الستاتك تُعمل باستخدام المبدل @مشترك (@shared)، أي أنه تعريف مشترك بين كل كائنات ذلك الصنف بدل أن يكون خاصًا بكائن واحد.

3- الmodule مجرد مجلد لترتيب شفرتك المصدرية (أي أنه مطابق لnamespace في لغات أخرى مثل سي++ وسي شارب)، بينما الtype هو الclass الذي في لغات أخرى، أي أنه صنف يمكن أن تنشئ منه متغيرات.

1 Like

شكراً لك … ولكن هل يمكنك ارفاق النسخة الانجليزية للاكواد ؟

نعم

def pf: ptr[func (int):int]
func printResult (...) { ... }
...
processData(printResult~ptr)

طبعا أسماء الدالات هنا مجرد أمثلة افتراضية وليست أسماء لدالات موجودة فعلًا.

1 Like

@AbdallahMohammed كما وعدتك هذا شرح انشاء مكتبة غطاء لمكتبة في لغة C

1 Like