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

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

مصادر