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