الفرق بين المراجعتين لصفحة: «Ruby/Object/method»
طلا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) |
||
سطر 1: | سطر 1: | ||
{{DISPLAYTITLE:التابع <code>Object.method</code> في روبي}} | {{DISPLAYTITLE:التابع <code>Object.method</code> في روبي}} | ||
يبحث التابع <code>method</code> عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver)، ثمَّ يعيد كائنًا من النوع <code>Method</code> لذلك التابع (أو يرمي الاستثناء <code>NameError</code>). يتصرَّف الكائن <code>Method</code> كتعبيرٍ مغلق (closure) في نسخ الكائن الخاصة بالكائن الذي يبحث فيه؛ لذلك، تبقى متغيِّرات النسخة (instance variables) وقيمة <code>self</code> متاحةً. | يبحث التابع <code>method</code> عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver)، ثمَّ يعيد كائنًا من النوع <code>Method</code> لذلك التابع (أو يرمي الاستثناء <code>NameError</code>). يتصرَّف الكائن <code>Method</code> كتعبيرٍ مغلق (closure) في نسخ الكائن الخاصة بالكائن الذي يبحث فيه؛ لذلك، تبقى متغيِّرات النسخة (instance variables) وقيمة <code>self</code> متاحةً. | ||
سطر 39: | سطر 40: | ||
* التابع <code>[[Ruby/Object/public method|public_method]]</code>: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع <code>method</code>. | * التابع <code>[[Ruby/Object/public method|public_method]]</code>: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابع <code>method</code>. | ||
*التابع <code>[[ | *التابع <code>[[Ruby/Object/public send|public_send]]</code>: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. | ||
*التابع <code>[[Ruby/Object/send|send]]</code>: يَستدعي التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. | *التابع <code>[[Ruby/Object/send|send]]</code>: يَستدعي التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. | ||
*التابع <code>[[Ruby/Object/remove instance variable|remove_instance_variable]]</code>: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. | *التابع <code>[[Ruby/Object/remove instance variable|remove_instance_variable]]</code>: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر. |
المراجعة الحالية بتاريخ 07:21، 30 مارس 2019
يبحث التابع method
عن تابعٍ باسمٍ محدَّد في الكائن المعطى بوصفه مستقبلًا (receiver)، ثمَّ يعيد كائنًا من النوع Method
لذلك التابع (أو يرمي الاستثناء NameError
). يتصرَّف الكائن Method
كتعبيرٍ مغلق (closure) في نسخ الكائن الخاصة بالكائن الذي يبحث فيه؛ لذلك، تبقى متغيِّرات النسخة (instance variables) وقيمة self
متاحةً.
البنية العامة
method(sym) → method
المعاملات
sym
رمزٌ يشير إلى اسم التابع المراد البحث عنه.
القيم المعادة
يُعاد كائنًا من النوع Method
يمثِّل التابع الموافق للاسم sym
الموجود في الكائن المعطى، أو يُرمى الاستثناء NameError
إذا لم يُعثَر على هذا التابع.
أمثلة
مثالٌ عن استخدام التابع method
:
class Demo
def initialize(n)
@iv = n
end
def hello()
"Hello, @iv = #{@iv}"
end
end
k = Demo.new(99)
m = k.method(:hello)
m.call #=> "Hello, @iv = 99"
l = Demo.new('Fred')
m = l.method("hello")
m.call #=> "Hello, @iv = Fred"
انظر أيضًا
- التابع
public_method
: يبحث عن التوابع العامة فقط بشكل مشابه لعمل التابعmethod
.
- التابع
public_send
: يَستدعي التابع المعرَّف برمزٍ محدَّدٍ ويُنفَّذه تلقائيًا مع تمرير أي معاملاتٍ معطاة. - التابع
send
: يَستدعي التابع المعرَّف برمزٍ (symbol) ويُنفَّذه تلقائيًا ويمرِّر إليه أي معاملاتٍ معطاة. - التابع
remove_instance_variable
: يَحذِف متغيِّر نسخةٍ باسمٍ محدَّدٍ من الكائن الذي استدعي معه ويُعيد قيمة ذلك المتغيِّر.