التابع Object.public_send في روبي
يَستدعي التابع 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: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.