الفرق بين المراجعتين لصفحة: «Ruby/Object/send»
أنشأ الصفحة ب'{{DISPLAYTITLE:التابع Object.send في روبي}} يَستدعي التابع <code>send</code> التابع المعرَّف برمزٍ (symbol) ويُنفَّذ...' |
طلا ملخص تعديل |
||
سطر 1: | سطر 1: | ||
{{DISPLAYTITLE:التابع Object.send في روبي}} | {{DISPLAYTITLE:التابع <code>Object.send</code> في روبي}} | ||
يَستدعي التابع <code>send</code> التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. يمكنك استخدام الاسم <code>__send__</code> البديل إذا تضارب الاسم مع توابع موجودةٍ في الكائن تحمل نفس الاسم. | يَستدعي التابع <code>send</code> التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. يمكنك استخدام الاسم <code>__send__</code> البديل إذا تضارب الاسم مع توابع موجودةٍ في الكائن تحمل نفس الاسم. | ||
إن عُرِّف التابع عن طريق سلسلةٍ نصية، فستُحوَّل تلك السلسلة إلى رمز. | إن عُرِّف التابع عن طريق سلسلةٍ نصية، فستُحوَّل تلك السلسلة إلى رمز. | ||
==البنية العامة== | |||
== البنية العامة == | |||
<syntaxhighlight lang="ruby"> | <syntaxhighlight lang="ruby"> | ||
send(symbol [, args...]) → obj | send(symbol [, args...]) → obj | ||
سطر 13: | سطر 11: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==المعاملات== | |||
== المعاملات == | ===<code>symbol</code>=== | ||
=== symbol === | |||
الرَّمزُ المعرِّف للتابع المُعطى. | الرَّمزُ المعرِّف للتابع المُعطى. | ||
===<code>...args</code>=== | |||
=== ...args === | |||
المعاملات المراد تمريرها إلى التابع. | المعاملات المراد تمريرها إلى التابع. | ||
==القيم المعادة== | |||
== القيم المعادة == | |||
يُعاد الكائن الناتج عن تنفيذ التابع المُستدعى. | يُعاد الكائن الناتج عن تنفيذ التابع المُستدعى. | ||
==أمثلة== | |||
== أمثلة == | مثالٌ عن استخدام التابع <code>send</code>:<syntaxhighlight lang="ruby"> | ||
مثالٌ عن استخدام التابع send: | |||
class Klass | class Klass | ||
def hello(*args) | |||
"Hello " + args.join(' ') | |||
end | |||
end | end | ||
k = Klass.new | k = Klass.new | ||
k.send :hello, "gentle", "readers" #=> "Hello gentle readers" | |||
</syntaxhighlight> | |||
==انظر أيضًا== | |||
== انظر أيضًا == | *التابع <code>[[Ruby/Object/public method|public_method]]</code>: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع <code>method</code>. | ||
* التابع public_method: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع method. | *التابع <code>[[Ruby/Object/public method|method]]</code>: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا. | ||
* التابع method: يبحث عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا. | *التابع <code>[[uby/Object/public send|public_send]]</code>: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. | ||
* التابع public_send: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. | *التابع <code>[[Ruby/Object/remove instance variable|remove_instance_variable]]</code>: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. | ||
* التابع remove_instance_variable: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Object.html#method-i-send صفحة التابع send في الصنف Object في توثيق روبي الرسمي.] | |||
== مصادر == | |||
* [http://ruby-doc.org/core-2.5.1/Object.html#method-i-send صفحة التابع send في الصنف Object في توثيق روبي الرسمي.] | |||
[[تصنيف:Ruby]] | [[تصنيف:Ruby]] | ||
[[تصنيف:Ruby Method]] | [[تصنيف:Ruby Method]] | ||
[[تصنيف:Ruby Object]] | [[تصنيف:Ruby Object]] |
مراجعة 17:39، 24 نوفمبر 2018
يَستدعي التابع 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
: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.