Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الـ Methods مقابل الـ Functions

جزء من قسم Logic & Flow في رحلة GO على Coddy — الدرس 10 من 68.

بينما تقوم كل من الطرق (methods) والوظائف (functions) بإجراء عمليات في Go، إلا أنها تخدم أغراضاً مختلفة ولها أنماط تعريف متميزة. إن فهم هذا الاختلاف أمر بالغ الأهمية لكتابة كود واضح ومنظم.

تُعد الدالة (function) مستقلة وقائمة بذاتها. فهي لا تنتمي إلى أي نوع محدد:

func calculateArea(width, height float64) float64 {
    return width * height
}

يتم ربط الـ method بنوع معين من خلال مستقبل (receiver). وهي تتبع ذلك النوع ويمكنها الوصول إلى بياناته:

func (r Rectangle) area() float64 {
    return r.Width * r.Height
}

يكمن الفرق الرئيسي في كيفية استدعائهما. يتم استدعاء الدوال (Functions) مباشرة بالاسم، بينما يتم استدعاء الميثودات (Methods) على مثيلات من نوعها المرتبط باستخدام تدوين النقطة (dot notation). هذا الارتباط يجعل الميثودات مثالية لتعريف السلوكيات التي تنتمي بشكل طبيعي إلى أنواعك المخصصة، بينما تعمل الدوال بشكل جيد للعمليات العامة التي لا تحتاج إلى الارتباط بهياكل بيانات محددة.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

ورقة مرجعية

الـ دالة (function) مستقلة وقائمة بذاتها:

func calculateArea(width, height float64) float64 {
    return width * height
}

الـ ميثود (method) مرتبطة بنوع معين من خلال مستقبل (receiver):

func (r Rectangle) area() float64 {
    return r.Width * r.Height
}

تُستدعى الدوال مباشرة بالاسم، بينما تُستدعى الميثودات على الكائنات (instances) باستخدام تدوين النقطة (dot notation).

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Logic & Flow