الفرق بين المراجعتين لصفحة: «Ruby/Method»
لا ملخص تعديل |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
سطر 1: | سطر 1: | ||
يتم إنشاء كائنات الصنف <code>Method</code> بواسطة التابع <code>[[Ruby/ | يتم إنشاء كائنات الصنف <code>Method</code> بواسطة التابع <code>[[Ruby/Object/method|Object.method]]</code>، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن <code>[[Ruby/UnboundMethod|UnboundMethod]]</code>) ثم ربطها بآخر. <syntaxhighlight lang="ruby"> | ||
class Thing | class Thing | ||
def square(n) | def square(n) | ||
سطر 10: | سطر 10: | ||
meth.call(9) #=> 81 | meth.call(9) #=> 81 | ||
[ 1, 2, 3 ].collect(&meth) #=> [1, 4, 9] | [ 1, 2, 3 ].collect(&meth) #=> [1, 4, 9] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
==توابع الكائن العامة (Public Instance Methods)== | ==توابع الكائن العامة (Public Instance Methods)== | ||
=== [[Ruby/Method/equal| | ===[[Ruby/Method/equal|<code>==</code>]]=== | ||
يتحقق المعامل <code>==</code> من تساوي كائنين من النوع <code>Method</code>. | |||
=== [[Ruby/Method/equal-3D| | ===[[Ruby/Method/equal-3D|<code>===</code>]]=== | ||
يستدعي | يستدعي المعامل <code>===</code> كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في <code>Proc.call</code>. | ||
=== [[Ruby/Method/index| | ===[[Ruby/Method/index|<code>[]</code>]]=== | ||
يستدعي | يستدعي الكتلة البرمجية للتابع، ويضبط قيم وسائط الكتلة عند القيم المعطاة. | ||
===[[Ruby/Method/arity | | ===[[Ruby/Method/arity|<code>arity</code>]]=== | ||
يعيد | يعيد مؤشرًا يمثل لعدد الوسائط المقبولة من قبل التابع (method) الذي استُدعي معه. | ||
===[[Ruby/Method/call | | ===[[Ruby/Method/call|<code>call</code>]]=== | ||
يستدعي | يستدعي كتلة التابع، ويضبط وسائط الكتلة عند القيم المعطاة باستخدام صياغة مشابهة لصياغة استدعاء التوابع. | ||
===[[Ruby/Method/clone | | ===[[Ruby/Method/clone|<code>clone</code>]]=== | ||
يعيد نسخة من التابع الذي استُدعي معه. | |||
===[[Ruby/Method/curry | | ===[[Ruby/Method/curry|<code>curry</code>]]=== | ||
يعيد كائن <code>proc</code> مُجزّء (curried proc) انطلاقًا من التابع الذي استُدعي معه. | |||
===[[Ruby/Method/eql-3F | | ===[[Ruby/Method/eql-3F|<code>eql?</code>]]=== | ||
يتحقق من تساوي كائنين من النوع <code>Method</code>. | |||
===[[Ruby/Method/hash | | ===[[Ruby/Method/hash|<code>hash</code>]]=== | ||
يعيد | يعيد القيمة hash المقابلة للكائن <code>Method</code> الذي استُدعي معه. | ||
===[[Ruby/Method/inspect | | ===[[Ruby/Method/inspect|<code>inspect</code>]]=== | ||
يعيد | يعيد اسم الأصلي (underlying method). | ||
===[[Ruby/Method/name | | ===[[Ruby/Method/name|<code>name</code>]]=== | ||
يعيد | يعيد اسم التابع. | ||
===[[Ruby/Method/ | ===[[Ruby/Method/original name|<code>original_name</code>]]=== | ||
يعيد | يعيد الاسم الأصلي للكائن <code>Method</code> الذي استُدعي معه. | ||
===[[Ruby/Method/owner | | ===[[Ruby/Method/owner|<code>owner</code>]]=== | ||
يعيد | يعيد الصنف أو الوحدة (module) التي تُعرِّف الكائن <code>Method</code> الذي استُدعي معه. | ||
===[[Ruby/Method/parameters | | ===[[Ruby/Method/parameters|<code>parameters</code>]]=== | ||
يعيد | يعيد معلومات عن معاملات الكائن <code>Method</code> الذي استُدعي معه. | ||
===[[Ruby/Method/receiver | | ===[[Ruby/Method/receiver|<code>receiver</code>]]=== | ||
يعيد | يعيد المستقبل المتلقي (bound receiver) للكائن <code>Method</code> الذي استُدعي معه. | ||
===[[Ruby/Method/ | ===[[Ruby/Method/source location|<code>source_location</code>]]=== | ||
يعيد | يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي للتابع<code>Method</code> الذي استدعي معه، أو يعيد القيمة <code>nil</code> إن لم يُعرّف هذا التابع في روبي (أي أنه أصلي). | ||
===[[Ruby/Method/ | ===[[Ruby/Method/super method|<code>super_method</code>]]=== | ||
يعيد | يعيد كائنًا من النوع <code>Method</code> للصنف الأب (superclass) للكائن<code>Method</code> الذي استدعي معه لاستدعائه عند استخدام <code>super</code>، أو يعيد <code>nil</code> إن لم يكن هناك تابع في الصنف الأب. | ||
===[[Ruby/Method/ | ===[[Ruby/Method/to proc|<code>to_proc</code>]]=== | ||
يعيد | يعيد الكائن <code>Proc</code> المقابل للكائن <code>Method</code> الذي استُدعي معه. | ||
===[[Ruby/Method/ | ===[[Ruby/Method/to s|<code>to_s</code>]]=== | ||
يعيد | يعيد اسم التابع الأصلي (underlying method). | ||
===[[Ruby/Method/unbind | | ===[[Ruby/Method/unbind|<code>unbind</code>]]=== | ||
يفك | يفك ارتباط الكائن <code>Method</code> الذي استُدعي معه من مُستقبِله (receiver) الحالي. | ||
==مصادر<span> </span>== | ==مصادر<span> </span>== | ||
*[http://ruby-doc.org/core-2.5.1/Method.html قسم | *[http://ruby-doc.org/core-2.5.1/Method.html قسم الصنف Method في توثيق روبي الرسمي.]<noinclude>{{DISPLAYTITLE: الصنف <code>Method</code> في روبي}}</noinclude> | ||
<noinclude>{{DISPLAYTITLE: | |||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Method]] | [[تصنيف: Ruby Class]] | ||
[[تصنيف: Ruby Method Class]] |
المراجعة الحالية بتاريخ 05:58، 18 نوفمبر 2018
يتم إنشاء كائنات الصنف Method
بواسطة التابع Object.method
، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن UnboundMethod
) ثم ربطها بآخر.
class Thing
def square(n)
n*n
end
end
thing = Thing.new
meth = thing.method(:square)
meth.call(9) #=> 81
[ 1, 2, 3 ].collect(&meth) #=> [1, 4, 9]
توابع الكائن العامة (Public Instance Methods)
==
يتحقق المعامل ==
من تساوي كائنين من النوع Method
.
===
يستدعي المعامل ===
كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في Proc.call
.
[]
يستدعي الكتلة البرمجية للتابع، ويضبط قيم وسائط الكتلة عند القيم المعطاة.
arity
يعيد مؤشرًا يمثل لعدد الوسائط المقبولة من قبل التابع (method) الذي استُدعي معه.
call
يستدعي كتلة التابع، ويضبط وسائط الكتلة عند القيم المعطاة باستخدام صياغة مشابهة لصياغة استدعاء التوابع.
clone
يعيد نسخة من التابع الذي استُدعي معه.
curry
يعيد كائن proc
مُجزّء (curried proc) انطلاقًا من التابع الذي استُدعي معه.
eql?
يتحقق من تساوي كائنين من النوع Method
.
hash
يعيد القيمة hash المقابلة للكائن Method
الذي استُدعي معه.
inspect
يعيد اسم الأصلي (underlying method).
name
يعيد اسم التابع.
original_name
يعيد الاسم الأصلي للكائن Method
الذي استُدعي معه.
owner
يعيد الصنف أو الوحدة (module) التي تُعرِّف الكائن Method
الذي استُدعي معه.
parameters
يعيد معلومات عن معاملات الكائن Method
الذي استُدعي معه.
receiver
يعيد المستقبل المتلقي (bound receiver) للكائن Method
الذي استُدعي معه.
source_location
يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي للتابعMethod
الذي استدعي معه، أو يعيد القيمة nil
إن لم يُعرّف هذا التابع في روبي (أي أنه أصلي).
super_method
يعيد كائنًا من النوع Method
للصنف الأب (superclass) للكائنMethod
الذي استدعي معه لاستدعائه عند استخدام super
، أو يعيد nil
إن لم يكن هناك تابع في الصنف الأب.
to_proc
يعيد الكائن Proc
المقابل للكائن Method
الذي استُدعي معه.
to_s
يعيد اسم التابع الأصلي (underlying method).
unbind
يفك ارتباط الكائن Method
الذي استُدعي معه من مُستقبِله (receiver) الحالي.