الفرق بين المراجعتين ل"Ruby/Object/send"

من موسوعة حسوب
< Ruby‏ | Object
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'{{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)
 def hello(*args)
+
    "Hello " + args.join(' ')
 
+
  end
   "Hello " + args.join(' ')
 
 
 
 end
 
 
 
 
end
 
end
 
 
k = Klass.new
 
k = Klass.new
 +
k.send :hello, "gentle", "readers"  #=> "Hello gentle readers"
  
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: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.

مصادر