التابع Object.send في روبي

من موسوعة حسوب

يَستدعي التابع send التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. يمكنك استخدام الاسم __send__ البديل إذا تضارب الاسم مع توابع موجودةٍ في الكائن تحمل نفس الاسم.

إن عُرِّف التابع عن طريق سلسلةٍ نصية، فستُحوَّل تلك السلسلة إلى رمز.

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

send(symbol [, args...])  obj
__send__(symbol [, args...])  obj
send(string [, args...])  obj
__send__(string [, args...])  obj

المعاملات

symbol

الرَّمزُ المعرِّف للتابع المُعطى.

...args

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

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

يُعاد الكائن الناتج عن تنفيذ التابع المُستدعى.

أمثلة

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

class Klass
  def hello(*args)
    "Hello " + args.join(' ')
  end
end
k = Klass.new
k.send :hello, "gentle", "readers"   #=> "Hello gentle readers"

انظر أيضًا

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

مصادر