Scope Rules for Functions and Methods

مرحبا

تحدثنا في المقالة السابقة عن النطاقات المرئية للمتغيرات واليوم نتحدث عن النطاقات الخاصة بالدوال.

?What is the difference between Functions and Methods

ال “Methods” وال “Functions” عبارة عن دوال مع بعض الاختلافات البسيطة.

أولا ال “Methods

تخص فقط البرمجة الكائنية”Object-Oriented”

  • يتم تعريفها داخل أو في نطاق ال “Class” واستدعائها عن طريق ال “Object”

ثانيا ال “Functions

  • في البرمجة الإجرائية”procedural“: يتم تعريف الدالة واستدعائها في أي نطاق “Scope”
  • في البرمجة الكائنيةObject-Oriented“: يتم تعريف الدالة خارج ال “Class”

 ?How Ring find the Functions and Methods

عند استدعاء دالة تقوم اللغة بالبحث عن الدالة المرتبطة بها.

  • فاذا كانت داخل “Object” سواء عن طريق “dot” أو “{}” فتقوم بالبحث بالترتيب التالي:
  1. تبحث أولا عن اسم الدالة في ال Methods أو ال Objects التابع لنفس ال “Class”
  2. وإذا لم تجده، تقوم بالبحث عن الاسم في ال Functions خارج ال “Class”
  • وإذا لم تكن داخل “Object” فتقوم بالبحث عن اسم الدالة في ال Functions خارج ال “Class”

ملحوظة:

  • عند وجود “Function” و “Method” بنفس الاسم يقوم البحث دائما عن “Method” أولا.
  • عند وجود Objects ل “Class” داخل “Class” اخر، فعندئذ يتغير ال “Scope ويتغير البحث من ال Methods التابع ل “Class” المتواجد فيه الي ال “Class” الاخر الذي ينتمي اليه بنفس الترتيب الذي قلنا عليه[ ال “Method” ثم ال “Functions”].
  • وبالتالي عند الحاجة الي استدعاء “Function” دون ال “Method” التي لها نفس الاسم، نقوم بالخروج من ال Scope بعمل class خالي ثم وضع اسم ال “Function” داخل “object” لهذا ال “Class” الجديد.

مثال توضيحي:

1.jpg

فتح الكود

نكتفي بهذا اليوم والي اللقاء…

موقع اللغة: http://ring-lang.net

 

 

Advertisements

فكرة واحدة على ”Scope Rules for Functions and Methods

  1. تعقيب: Reflection and Meta-Programming | لغة البرمجة رينج Ring programming language

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

WordPress.com Logo

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   / تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   / تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   / تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   / تغيير )

Connecting to %s