الفرق بين المراجعتين ل"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
: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.