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

اختيار الـ Receivers

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

الآن بعد أن فهمت كلاً من مستقبِلات القيمة (value receivers) ومستقبِلات المؤشر (pointer receivers)، فإن السؤال الجوهري هو: متى يجب عليك استخدام كل منهما؟ يعتمد القرار على ما تحتاج الـ method القيام به مع الـ receiver.

استخدم مستقبل المؤشر (pointer receiver) عندما تحتاج الطريقة (method) الخاصة بك إلى تعديل الهيكل (struct) الأصلي. نظرًا لأن مستقبلات المؤشر تعمل مع المثيل الفعلي للهيكل، فإن أي تغييرات يتم إجراؤها داخل الطريقة ستظل قائمة بعد انتهاء تنفيذ الطريقة. هذا أمر ضروري للطرق التي تقوم بتحديث الحقول، أو تغيير الحالة، أو إجراء العمليات التي يجب أن تؤثر على البيانات الأصلية.

استخدم مستقبل القيمة (value receiver) عندما تحتاج الطريقة (method) الخاصة بك فقط إلى قراءة البيانات من الهيكل (struct) دون تغييره. تعمل مستقبلات القيمة مع نسخة، لذا فهي مثالية للطرق التي تحسب القيم، أو تنسق المخرجات، أو تؤدي أي عملية لا تتطلب تعديل الهيكل الأصلي. كما أنها توفر الأمان من خلال ضمان بقاء البيانات الأصلية دون تغيير.

كقاعدة عامة: إذا كانت الـ method الخاصة بك تغير الـ struct، فاستخدم pointer receiver. وإذا كانت الـ method تقرأ فقط من الـ struct، فاستخدم value receiver. هذا النهج يجعل نوايا الكود الخاص بك واضحة ويساعد في منع التعديلات غير المقصودة على بياناتك.

quiz iconاختبر نفسك

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

quiz iconاختبر نفسك

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

quiz iconاختبر نفسك

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

ورقة مرجعية

استخدم pointer receiver (مستقبل مؤشر) عندما تحتاج الدالة (method) الخاصة بك إلى تعديل الهيكل (struct) الأصلي:

  • التغييرات التي يتم إجراؤها داخل الدالة ستستمر بعد انتهاء تنفيذ الدالة
  • ضروري للدوال التي تقوم بتحديث الحقول أو تغيير الحالة

استخدم value receiver (مستقبل قيمة) عندما تحتاج الدالة الخاصة بك فقط إلى قراءة البيانات من الهيكل (struct):

  • تعمل مع نسخة، لذا تظل البيانات الأصلية دون تغيير
  • مثالية للدوال التي تحسب القيم أو تنسق المخرجات
  • توفر الأمان من خلال ضمان عدم حدوث تعديلات غير مقصودة

قاعدة عامة: إذا كانت الدالة الخاصة بك تغير الهيكل (struct)، فاستخدم pointer receiver. أما إذا كانت الدالة تقرأ فقط من الهيكل، فاستخدم value receiver.

جرّب بنفسك

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

quiz iconاختبر نفسك

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

جميع دروس Logic & Flow