الفرق بين المراجعتين لصفحة: «Ruby/BasicObject/send»
< Ruby | BasicObject
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code> __send__</code> في الصنف <code>BasicObject</code> في ruby}}</noinclude> تصنيف: Ruby تصنيف: Rub...' |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code> __send__</code> في الصنف <code>BasicObject</code> في ruby}}</noinclude> | <noinclude>{{DISPLAYTITLE: التابع <code>__send__</code> في الصنف <code>BasicObject</code> في ruby}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby | [[تصنيف: Ruby BasicObject]] | ||
يستدعي التابع <code>__send__</code> (يدعى أيضًا <code>send</code>) التابع الممرَّر إليه مع تمرير وسائط محددة إليه. | يستدعي التابع <code>__send__</code> (يدعى أيضًا <code>send</code>) التابع الممرَّر إليه مع تمرير وسائط محددة إليه. | ||
يُستعمَل الاسم <code>__send__</code> الخاص بهذا التابع إذا تعارض الاسم <code>send</code> مع اسم تابع موجود مسبقًا في <code>obj</code>. | يُستعمَل الاسم <code>__send__</code> الخاص بهذا التابع إذا تعارض الاسم <code>send</code> مع اسم تابع موجود مسبقًا في <code>obj</code>. | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby"> send(symbol [, args...]) → obj | <syntaxhighlight lang="ruby">send(symbol [, args...]) → obj | ||
__send__(symbol [, args...]) → obj | __send__(symbol [, args...]) → obj | ||
send(string [, args...]) → obj | send(string [, args...]) → obj | ||
سطر 12: | سطر 13: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==المعاملات== | ==المعاملات== | ||
<code>symbol</code> | |||
=== <code>symbol</code> === | |||
اسم التابع المُعرَّف المراد استدعاؤه. | اسم التابع المُعرَّف المراد استدعاؤه. | ||
... | |||
=== <code>...args</code> === | |||
الوسائط المراد تمريرها إلى التابع المحدد في المعامل <code>symbol</code>. | الوسائط المراد تمريرها إلى التابع المحدد في المعامل <code>symbol</code>. | ||
<code>string</code> | |||
سلسلة نصية تمثل اسم التابع المراد استدعاؤه. عندما يُعرّف التابع بواسطة سلسلة نصية (أي باستعمال هذا المعامل)، تحوَّل تلك السلسلة إلى رمز ( | === <code>string</code> === | ||
سلسلة نصية تمثل اسم التابع المراد استدعاؤه. عندما يُعرّف التابع بواسطة سلسلة نصية (أي باستعمال هذا المعامل)، تحوَّل تلك السلسلة إلى رمز (symbol). | |||
==القيم المعادة== | ==القيم المعادة== | ||
يعاد كائن. | يعاد كائن. | ||
==أمثلة== | ==أمثلة== | ||
مثال لاستخدام التابع <code>__send__</code>: | مثال لاستخدام التابع <code>__send__</code>: | ||
<syntaxhighlight lang="ruby"> class Klass | <syntaxhighlight lang="ruby">class Klass | ||
def hello(*args) | def hello(*args) | ||
"Hello " + args.join(' ') | "Hello " + args.join(' ') | ||
سطر 31: | سطر 35: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==انظر أيضًا== | ==انظر أيضًا== | ||
* التابع <code>__id__</code>: يعيد مُعرِّفا عدديًا للكائن الذي استُدعي معه. | * التابع [[Ruby/BasicObject/id|<code>__id__</code>]]: يعيد مُعرِّفا عدديًا للكائن الذي استُدعي معه. | ||
* التابع [[Ruby/BasicObject/instance_eval | <code>instance_eval</code>]]: يقدِّر ناتج تنفيذ شيفرة مصدرية للغة روبي معطاة كسلسلة نصية أو ناتج كتلة برمجية ( | * التابع<nowiki/>[[Ruby/BasicObject/instance_eval | <code>instance_eval</code>]]: يقدِّر ناتج تنفيذ شيفرة مصدرية للغة روبي معطاة كسلسلة نصية أو ناتج كتلة برمجية (block) مُمرَّرة ضمن سياق كائن مُستقبِل (obj). | ||
* التابع [[Ruby/BasicObject/instance_exec | <code>instance_exec</code>]]: ينفِّذ الكتلة البرمجية المُمرَّرة ضمن سياق الكائن المستقبل ( | * التابع<nowiki/>[[Ruby/BasicObject/instance_exec | <code>instance_exec</code>]]: ينفِّذ الكتلة البرمجية المُمرَّرة ضمن سياق الكائن المستقبل (obj). | ||
==مصادر== | ==مصادر== | ||
* قسم التابع __send__ في الصنف BasicObject في توثيق روبي الرسمي. | * [http://ruby-doc.org/core-2.5.1/BasicObject.html#method-i-__send__ قسم التابع __send__ في الصنف BasicObject في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 08:01، 4 أكتوبر 2018
يستدعي التابع __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).