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

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'تحوّل المكتبة <code>Marshal</code> مجموعات من كائنات روبب إلى سلاسل بتات (byte stream)، مما يسمح بتخزينها خا...')
 
ط (مراجعة وتدقيق.)
 
(مراجعتان متوسطتان بواسطة مستخدم واحد آخر غير معروضتين)
سطر 1: سطر 1:
تحوّل المكتبة <code>Marshal</code> مجموعات من كائنات روبب إلى سلاسل بتات (byte stream)، مما يسمح بتخزينها خارج البرنامج النصي النشط حاليًا. ثم يمكن بعد ذلك قراءة تلك البيانات وإعادة إنشاء الكائنات الأصلية.   
+
يتم إنشاء كائنات الصنف <code>Method</code> بواسطة التابع <code>[[Ruby/Object/method|Object.method]]</code>، وترتبط بكائن معين (وليس بالصنف وحسب). ويمكن استخدامها لاستدعاء التابع داخل الكائن، أو ككتلة (block) مرتبطة بمكرر (iterator). كما يمكن فك ارتباطها (unbound) من كائن محدد (سيؤدي ذلك إلى إنشاء الكائن <code>[[Ruby/UnboundMethod|UnboundMethod]]</code>) ثم ربطها بآخر<syntaxhighlight lang="ruby">
 +
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]
 +
</syntaxhighlight>
 +
==توابع الكائن العامة (Public Instance Methods)==
 +
===[[Ruby/Method/equal|<code>==</code>]]===
 +
يتحقق المعامل <code>==</code> من تساوي كائنين من النوع <code>Method</code>.
 +
===[[Ruby/Method/equal-3D|<code>===</code>]]===
 +
يستدعي المعامل <code>===</code> كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في <code>Proc.call</code>.
 +
===[[Ruby/Method/index|<code>[]</code>]]===
 +
يستدعي الكتلة البرمجية للتابع، ويضبط قيم وسائط الكتلة عند القيم المعطاة.
 +
===[[Ruby/Method/arity|<code>arity</code>]]===
 +
يعيد مؤشرًا يمثل لعدد الوسائط المقبولة من قبل التابع (method) الذي استُدعي معه.
 +
===[[Ruby/Method/call|<code>call</code>]]===
 +
يستدعي كتلة التابع، ويضبط وسائط الكتلة عند القيم المعطاة باستخدام صياغة مشابهة لصياغة استدعاء التوابع.
 +
===[[Ruby/Method/clone|<code>clone</code>]]===
 +
يعيد نسخة من التابع الذي استُدعي معه.
 +
===[[Ruby/Method/curry|<code>curry</code>]]===
 +
يعيد كائن <code>proc</code> مُجزّء (curried proc) انطلاقًا من التابع الذي استُدعي معه.
 +
===[[Ruby/Method/eql-3F|<code>eql?‎</code>]]===
 +
يتحقق من تساوي كائنين من النوع <code>Method</code>.
 +
===[[Ruby/Method/hash|<code>hash</code>]]===
 +
يعيد القيمة hash المقابلة للكائن <code>Method</code> الذي استُدعي معه.
 +
===[[Ruby/Method/inspect|<code>inspect</code>]]===
 +
يعيد اسم الأصلي (underlying method).
 +
===[[Ruby/Method/name|<code>name</code>]]===
 +
يعيد اسم التابع.
 +
===[[Ruby/Method/original name|<code>original_name</code>]]===
 +
يعيد الاسم الأصلي للكائن <code>Method</code> الذي استُدعي معه.
 +
===[[Ruby/Method/owner|<code>owner</code>]]===
 +
يعيد الصنف أو الوحدة (module) التي تُعرِّف الكائن <code>Method</code> الذي استُدعي معه.
 +
===[[Ruby/Method/parameters|<code>parameters</code>]]===
 +
يعيد معلومات عن معاملات الكائن <code>Method</code> الذي استُدعي معه.
 +
===[[Ruby/Method/receiver|<code>receiver</code>]]===
 +
يعيد المستقبل المتلقي (bound receiver) للكائن <code>Method</code> الذي استُدعي معه.
 +
===[[Ruby/Method/source location|<code>source_location</code>]]===
 +
يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي للتابع<code>Method</code> الذي استدعي معه، أو يعيد القيمة <code>nil</code> إن لم يُعرّف هذا التابع في روبي (أي أنه أصلي).
 +
===[[Ruby/Method/super method|<code>super_method</code>]]===
 +
يعيد كائنًا من النوع <code>Method</code> للصنف الأب (superclass) للكائن<code>Method</code> الذي استدعي معه لاستدعائه عند استخدام <code>super</code>، أو يعيد <code>nil</code> إن لم يكن هناك تابع في الصنف الأب.
 +
===[[Ruby/Method/to proc|<code>to_proc</code>]]===
 +
يعيد الكائن <code>Proc</code> المقابل للكائن <code>Method</code> الذي استُدعي معه.
 +
===[[Ruby/Method/to s|<code>to_s</code>]]===
 +
يعيد اسم التابع الأصلي (underlying method).
 +
===[[Ruby/Method/unbind|<code>unbind</code>]]===
 +
يفك ارتباط الكائن <code>Method</code> الذي استُدعي معه من مُستقبِله (receiver) الحالي. 
 
==مصادر<span> </span>==
 
==مصادر<span> </span>==
*[http://ruby-doc.org/core-2.5.1/Marshal.html قسم الصنف Marshal في توثيق روبي الرسمي.]
+
*[http://ruby-doc.org/core-2.5.1/Method.html قسم الصنف Method في توثيق روبي الرسمي.]<noinclude>{{DISPLAYTITLE: الصنف <code>Method</code> في روبي}}</noinclude>
 
 
<noinclude>{{DISPLAYTITLE: صفحة الصنف <code>Method</code> في روبي}}</noinclude>
 
 
[[تصنيف: 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) الحالي. 

مصادر