الـ Methods مقابل الـ Functions
جزء من قسم المنطق وتدفق التنفيذ في رحلة GO على Coddy. الدرس 10 من 68.
في حين أن كلًّا من الأساليب والدوال ينفّذ عمليات في Go، فإن لكلٍّ منهما أغراضًا مختلفة وأنماط تعريف مميّزة. ويُعد فهم هذا الاختلاف أمرًا بالغ الأهمية لكتابة تعليمات برمجية واضحة ومنظمة.
تكون الدالة مستقلة بذاتها وغير تابعة. فهي لا تنتمي إلى أي نوع محدد:
func calculateArea(width, height float64) float64 {
return width * height
}ترتبط الدالة بنوع محدد من خلال مستقبِل. وهي تنتمي إلى ذلك النوع ويمكنها الوصول إلى بياناته:
func (r Rectangle) area() float64 {
return r.Width * r.Height
}يكمن الفرق الأساسي في كيفية استدعائك لها. تُستدعى الدوال مباشرةً باسمها، بينما تُستدعى الأساليب على مثيلات نوعها المرتبط باستخدام ترميز النقطة. هذا الارتباط يجعل الأساليب مثالية لتعريف السلوكيات التي تنتمي طبيعيًا إلى الأنواع المخصّصة، بينما تعمل الدوال جيدًا للعمليات ذات الاستخدام العام التي لا تحتاج إلى الارتباط ببُنى بيانات محددة.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس المنطق وتدفق التنفيذ
1تدفق التحكم المتقدم
جملة Switch مع `fallthrough`الخروج من الحلقات المتداخلةالاستمرار في حلقة محددةجملة `goto`ملخص - التحكم المتقدم في الحلقات2الـ Structs والميثودز (Methods)
تعريف الـ Methods على الـ Structsالـ Value Receiversالـ Pointer Receiversاختيار الـ Receiversالـ Methods مقابل الـ Functionsملخص - سلوك الـ Struct5تعمق في الـ Maps
Maps من نوع Structsالـ Pointers كقيم في الـ Mapsالتحقق من الـ Nil Mapsمقارنة الـ Mapsمراجعة - عداد تكرار الكلمات3الواجهات (الأساسيات)
ما هي الواجهة؟تعريف الواجهةتطبيق الواجهةاستخدام أنواع الواجهاتالواجهة الفارغةتأكيدات النوع (Type Assertions)تبديل النوع (Type Switch)ملخص - الأشكال والسلوكياتتدرّب بنفسك: مترجم Go عبر الإنترنت