الفرق بين المراجعتين لصفحة: «Ruby/Object/public send»
أنشأ الصفحة ب'{{DISPLAYTITLE:التابع Object.public_send في روبي}} يَستدعي التابع <code>public_send</code> التابع المعرَّف برمزٍ (symbol) م...' |
طلا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
{{DISPLAYTITLE:التابع Object.public_send في روبي}} | {{DISPLAYTITLE:التابع <code>Object.public_send</code> في روبي}} | ||
يَستدعي التابع <code>public_send</code> التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. خلافًا للتابع <code>send</code>، يَستدعي التابع <code>public_send</code> التوابع العامة فقط. إن عُرِّف التابع باستخدام سلسلةٍ نصيةٍ (string)، فستُحوَّل هذه السلسلة إلى رمز. | يَستدعي التابع <code>public_send</code> التابع المعرَّف برمزٍ (symbol) محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. خلافًا للتابع <code>send</code>، يَستدعي التابع <code>public_send</code> التوابع العامة فقط. إن عُرِّف التابع باستخدام سلسلةٍ نصيةٍ (string)، فستُحوَّل هذه السلسلة إلى رمز. | ||
سطر 11: | سطر 10: | ||
== المعاملات == | == المعاملات == | ||
=== symbol === | === <code>symbol</code> === | ||
الرَّمز المُعرِّف للتابع المراد استدعاءه. | الرَّمز المُعرِّف للتابع المراد استدعاءه. | ||
=== string === | === <code>string</code> === | ||
سلسلة نصية تعرِّف التابع المراد استدعاءه. ستُحوَّل هذه السلسلة إلى رمز إن أعطيت. | سلسلة نصية تعرِّف التابع المراد استدعاءه. ستُحوَّل هذه السلسلة إلى رمز إن أعطيت. | ||
=== ...args === | === <code>...args</code> === | ||
المعاملات المراد تمريرها إلى التابع الذي يراد استداعاؤه. | المعاملات المراد تمريرها إلى التابع الذي يراد استداعاؤه. | ||
== القيم المعادة == | == القيم المعادة == | ||
يُعاد الكائن الناتج عن تنفيذ التابع المُستدعى. يُرمى الاستثناء NoMethodError إذا لم يُوجد تابعٌ موافقٌ للرمز symbol أو السلسلة النصية string المُعطاة. | يُعاد الكائن الناتج عن تنفيذ التابع المُستدعى. يُرمى الاستثناء <code>NoMethodError</code> إذا لم يُوجد تابعٌ موافقٌ للرمز <code>symbol</code> أو السلسلة النصية <code>string</code> المُعطاة. | ||
== أمثلة == | == أمثلة == | ||
مثالٌ عن استخدام التابع public_send: | مثالٌ عن استخدام التابع <code>public_send</code>:<syntaxhighlight lang="ruby"> | ||
1.public_send(:puts, "hello") # causes NoMethodError | |||
1.public_send(:puts, "hello") | </syntaxhighlight> | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* التابع public_method: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع method. | * التابع <code>[[Ruby/Object/public method|public_method]]</code>: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع <code>method</code>. | ||
* التابع method: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا | * التابع <code>[[Ruby/Object/public method|method]]</code>: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا. | ||
*التابع <code>[[Ruby/Object/send|send]]</code>: يَستدعي التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. | |||
*التابع <code>[[Ruby/Object/remove instance variable|remove_instance_variable]]</code>: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. | |||
== مصادر == | == مصادر == | ||
* [http://ruby-doc.org/core-2.5.1/Object.html#method-i-public_send صفحة التابع public_send في الصنف Object في توثيق روبي الرسمي.] | * [http://ruby-doc.org/core-2.5.1/Object.html#method-i-public_send صفحة التابع public_send في الصنف Object في توثيق روبي الرسمي.] |
مراجعة 15:01، 24 نوفمبر 2018
يَستدعي التابع 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
: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.