الفرق بين المراجعتين لصفحة: «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 Class Methods)==
===[[Ruby/Method/equal|<code>==</code>]]===
===[[Ruby/Method/3D-3D | التابع ==]]===
يتحقق المعامل <code>==</code> من تساوي كائنين من النوع <code>Method</code>.
يكاون كائنان من النوع Method متساويين إن كانا مرتبطين بنفس الكائن، وكانا يشيران إلى نفس تعريف التابع، وكان لهما نفس الصنف أو الوحدة (module) المالكة.
===[[Ruby/Method/equal-3D|<code>===</code>]]===
===[[Ruby/Method/3D-3D-3D | التابع ===]]===
يستدعي المعامل <code>===</code> كتلة التابع مع تمرير الكائن الواقع على يمينه كوسيط إلى المعامل الواقع على يساره كما هو الحال في <code>Proc.call</code>.
يستدعي الكتلة مع تمرير المعامل <code>obj</code> كوسيط لـ proc مثل <code>Proc#call</code>.  يسمح لكائن proc أن يكون هدفًا للكتلة <code>when</code> في التعليمة case.
===[[Ruby/Method/index|<code>[]</code>]]===
===[[Ruby/Method/5B-5D | التابع []]]===
يستدعي الكتلة البرمجية للتابع، ويضبط قيم وسائط الكتلة عند القيم المعطاة.
يستدعي الكتلة البرمجية للتابع، ويضبط قيم وسائط الكتلة عند القيم المعطاة params باستخدام صياغة مشابهة لاستدعاء التوابع. يعيد  قيمة آخر تعبير تم تقييمه في الكتلة.
===[[Ruby/Method/arity|<code>arity</code>]]===
===[[Ruby/Method/arity | التابع arity]]===
يعيد مؤشرًا يمثل لعدد الوسائط المقبولة من قبل التابع (method) الذي استُدعي معه.
يعيد مؤشرا لعدد الوسائط المقبولة من قبل التابع. يعيد عددًا صحيحًا غير سالب للتوابع التي تأخذ عددًا محددًا من الوسائطا. بالنسبة لتوابع روبي التي تأخذ عددًا متغيرًا من الوسائط، يًعاد العدد -n-1، حيث n هو عدد الوسائط المطلوبة. الوسائط المسماة (Keyword arguments) ستُعد وسيطاً إضافيًا واحدًا، وسيكون ذلك الوسيط إلزاميا إن كان أيٌّ من الوسائط المسماة كذلك. بالنسبة للتوابع المكتوبة بلغة C، سيُعاد العدد -1 إن كانت استدعاء تلك التوابع يأخذ عددًا متغيرًا من الوسائط.
===[[Ruby/Method/call|<code>call</code>]]===
===[[Ruby/Method/call | التابع call]]===
يستدعي كتلة التابع، ويضبط وسائط الكتلة عند القيم المعطاة باستخدام صياغة مشابهة لصياغة استدعاء التوابع.
يستدعي كتلة التابع، ويضبط وسائط الكتلة عند القيم المعطاة params باستخدام صياغة مشابهة لصياغة استدعاء التوابع. ثم يعد قيمة آخر تعبير تم تقييمه في الكتلة.
===[[Ruby/Method/clone|<code>clone</code>]]===
===[[Ruby/Method/clone | التابع clone]]===
يعيد نسخة من التابع الذي استُدعي معه.
يعيد  نسخة من هذا التابع.
===[[Ruby/Method/curry|<code>curry</code>]]===
===[[Ruby/Method/curry | التابع curry]]===
يعيد كائن <code>proc</code> مُجزّء (curried proc) انطلاقًا من التابع الذي استُدعي معه.
يعيد  كتلة proc مُجزّءة (curried proc) انطلاقا من التابع الذي استُدعيت معه. عندما يكون عدد الوسائط الممررة إلى الكتلة proc أقل من رتبة (arity) التابع، فستعاد كتلة proc مجزءة أخرى. لن يُستدعى التابع فعليًا إلا عندما يتم توفير الوسائط الكافية لإمضاء (signature) التابع.
===[[Ruby/Method/eql-3F|<code>eql?‎</code>]]===
===[[Ruby/Method/eql-3F | التابع eql?]]===
يتحقق من تساوي كائنين من النوع <code>Method</code>.
يكون كائنان من النوع Method متساويتين إذا كانا مرتبطين بنفس الكائن، ويرجعان إلى نفس التعريف، وكانا مملوكين من قبل نفس الصنف أو الوحدة.
===[[Ruby/Method/hash|<code>hash</code>]]===
===[[Ruby/Method/hash | التابع hash]]===
يعيد القيمة hash المقابلة للكائن <code>Method</code> الذي استُدعي معه.
يعيد رمز التكويد (hash) المقابل لكائن Method الذي استُدعي معه.
===[[Ruby/Method/inspect|<code>inspect</code>]]===
===[[Ruby/Method/inspect | التابع inspect]]===
يعيد اسم الأصلي (underlying method).
يعيد اسم التابع الأصلي (underlying method).
===[[Ruby/Method/name|<code>name</code>]]===
===[[Ruby/Method/name | التابع name]]===
يعيد اسم التابع.
يعيد اسم التابع.
===[[Ruby/Method/original name|<code>original_name</code>]]===
===[[Ruby/Method/original_name | التابع original_name]]===
يعيد الاسم الأصلي للكائن <code>Method</code> الذي استُدعي معه.
يعيد الاسم الأصلي للتابع الذي استُدعي معه.
===[[Ruby/Method/owner|<code>owner</code>]]===
===[[Ruby/Method/owner | التابع owner]]===
يعيد الصنف أو الوحدة (module) التي تُعرِّف الكائن <code>Method</code> الذي استُدعي معه.
يعيد الصنف أو الوحدة (module) التي تعرف التابع .
===[[Ruby/Method/parameters|<code>parameters</code>]]===
===[[Ruby/Method/parameters | التابع parameters]]===
يعيد معلومات عن معاملات الكائن <code>Method</code> الذي استُدعي معه.
يعيد معلومات عن وسائط التابع .
===[[Ruby/Method/receiver|<code>receiver</code>]]===
===[[Ruby/Method/receiver | التابع receiver]]===
يعيد المستقبل المتلقي (bound receiver) للكائن <code>Method</code> الذي استُدعي معه.
يعيد المستقبل المتلقي (bound receiver) لكائن Method .
===[[Ruby/Method/source location|<code>source_location</code>]]===
===[[Ruby/Method/source_location | التابع source_location]]===
يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي للتابع<code>Method</code> الذي استدعي معه، أو يعيد القيمة <code>nil</code> إن لم يُعرّف هذا التابع في روبي (أي أنه أصلي).
يعيد اسم الملف المصدر لروبي ورقم السطر الذي يحتوي هذا التابع، أو يعيد nil إن لم يُعرّف هذا التابع في روبي (أي أصلي).
===[[Ruby/Method/super method|<code>super_method</code>]]===
===[[Ruby/Method/super_method | التابع super_method]]===
يعيد كائنًا من النوع <code>Method</code> للصنف الأب (superclass) للكائن<code>Method</code> الذي استدعي معه لاستدعائه عند استخدام <code>super</code>، أو يعيد <code>nil</code> إن لم يكن هناك تابع في الصنف الأب.
يعيد كائنا من النوع <code>Method</code> للصنف الأب (superclass)، حتى يمكن استدعاؤه عند استخدام super، أو يعيد nil إن لم يكن هناك تابع في الصنف الأب.
===[[Ruby/Method/to proc|<code>to_proc</code>]]===
===[[Ruby/Method/to_proc | التابع to_proc]]===
يعيد الكائن <code>Proc</code> المقابل للكائن <code>Method</code> الذي استُدعي معه.
يعيد الكائنً من النوع <code>Proc</code> المقابل لهذا التابع.
===[[Ruby/Method/to s|<code>to_s</code>]]===
===[[Ruby/Method/to_s | التابع to_s]]===
يعيد اسم التابع الأصلي (underlying method).
يعيد اسم التابع الأصلي (underlying method).
===[[Ruby/Method/unbind|<code>unbind</code>]]===
===[[Ruby/Method/unbind | التابع unbind]]===
يفك ارتباط الكائن <code>Method</code> الذي استُدعي معه من مُستقبِله (receiver) الحالي. 
يفك ارتباط تابع meth من مُستقبِله (receiver) الحالي. يمكن في وقت لاحق ربط <code>UnboundMethod</code> مع كائن جديد من نفس الصنف (انظر <code>UnboundMethod</code>).
 
 
==مصادر<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) الحالي. 

مصادر