الفرق بين المراجعتين لصفحة: «Ruby/Object/public send»

من موسوعة حسوب
< Ruby‏ | Object
طلا ملخص تعديل
ط نقل جميل-بيلوني صفحة uby/Object/public send إلى Ruby/Object/public send دون ترك تحويلة: تصحيح العنوان
 
(لا فرق)

المراجعة الحالية بتاريخ 06:43، 3 فبراير 2019

يَستدعي التابع public_send التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. خلافًا للتابع send، يَستدعي التابع public_send التوابع العامة فقط. إن عُرِّف التابع باستخدام سلسلةٍ نصيةٍ (string)، فستُحوَّل هذه السلسلة إلى رمز.

البنية العامة

public_send(symbol [, args...])  obj
public_send(string [, args...])  obj

المعاملات

symbol

الرَّمز المُعرِّف للتابع المراد استدعاءه.

string

سلسلة نصية تعرِّف التابع المراد استدعاءه.  ستُحوَّل هذه السلسلة إلى رمز إن أعطيت.

...args

المعاملات المراد تمريرها إلى التابع الذي يراد استداعاؤه.

القيم المعادة

يُعاد الكائن الناتج عن تنفيذ التابع المُستدعى. يُرمى الاستثناء NoMethodError إذا لم يُوجد تابعٌ موافقٌ للرمز symbol أو السلسلة النصية string المُعطاة.

أمثلة

مثالٌ عن استخدام التابع public_send:

1.public_send(:puts, "hello")  # causes NoMethodError

انظر أيضًا

  • التابع public_method: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع method.
  • التابع method: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا.
  • التابع send: يَستدعي التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة.
  • التابع remove_instance_variable: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.

مصادر