التابع __send__ في الصنف BasicObject في ruby

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

يستدعي التابع __send__ (يدعى أيضًا send) التابع الممرَّر إليه مع تمرير وسائط محددة إليه.

يُستعمَل الاسم __send__ الخاص بهذا التابع إذا تعارض الاسم send مع اسم تابع موجود مسبقًا في obj.

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

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

المعاملات

symbol

اسم التابع المُعرَّف المراد استدعاؤه.

...args

الوسائط المراد تمريرها إلى التابع المحدد في المعامل symbol.

string

سلسلة نصية تمثل اسم التابع المراد استدعاؤه. عندما يُعرّف التابع بواسطة سلسلة نصية (أي باستعمال هذا المعامل)، تحوَّل تلك السلسلة إلى رمز (symbol).

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

يعاد كائن.

أمثلة

مثال لاستخدام التابع __send__:

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

انظر أيضًا

  • التابع ‎__id__‎‎‎: يعيد مُعرِّفا عدديًا للكائن الذي استُدعي معه.
  • التابع instance_eval: يقدِّر‎ ناتج تنفيذ شيفرة مصدرية للغة روبي معطاة كسلسلة نصية أو ناتج كتلة برمجية (block) مُمرَّرة ضمن سياق كائن مُستقبِل (obj).
  • التابع instance_exec: ينفِّذ الكتلة البرمجية المُمرَّرة ضمن سياق الكائن المستقبل (obj).

مصادر