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”
  3. وإذا لم تجده، تبحث عن الدوال الجاهزة في اللغة بلغة ال C بنفس اﻻسم مثل دالة Copy.
  • وإذا لم تكن داخل “Object” فتقوم بالبحث عن اسم الدالة في ال Functions خارج ال “Class”

ملحوظة:

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

مثال توضيحي:

1.jpg

الكود

للاطلاع علي المقالات الاخري من هنا

تستطيع الاطلاع علي المشاريع مفتوحة المصدر من الموقع  GitHub
الموقع الرسمي للغة  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