الفرق بين المراجعتين لصفحة: «Ruby/Module/module function»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>module_function</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby [...' |
جميل-بيلوني (نقاش | مساهمات) ط مراجعة وتدقيق. |
||
(مراجعة متوسطة واحدة بواسطة مستخدم واحد آخر غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE: التابع <code>module_function | <noinclude>{{DISPLAYTITLE: التابع <code>Module.module_function</code> في روبي}}</noinclude> | ||
[[تصنيف: Ruby]] | [[تصنيف: Ruby]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Module]] | [[تصنيف: Ruby Module Class]] | ||
ينشئ التابع <code>module_function</code> دوال وحدة (module functions) | ينشئ التابع <code>module_function</code> دوال وحدة (module functions) للتوابع المعطاة. يمكن استدعاء هذه الدوال مع الوحدة كمُستقبِلات (receiver)، كما يمكن أن تصبح متاحةً كتوابع نسخة (instance methods) للأصناف التي تُمزج (mix) في الوحدة. دوال النوع <code>[[Ruby/Module|Module]]</code> هي نسخ من الدوال الأصلية، وبالتالي يمكن تغييرها بشكل مستقل. | ||
توابع النسخة (instance-method) ستتحول إلى خاصة. وإذا تم استدعاء التابع <code>module_function</code> دون معاملات، فستصبح التوابع التي ستُعرَّف لاحقًا دوال وحدة (module functions). | |||
تُحوّل الوسائط [[Ruby/String|النصية]] إلى [[Ruby/Symbol|رموز]]. | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">module_function(symbol, ...) → self | <syntaxhighlight lang="ruby">module_function(symbol, ...) → self | ||
سطر 9: | سطر 13: | ||
==المعاملات== | ==المعاملات== | ||
===<code>symbol</code>=== | ===<code>symbol</code>=== | ||
كائن من النوع <code>[[Ruby/Symbol|Symbol]]</code> يمثل اسم الدالة المراد إنشاؤها. | |||
===<code> | ===<code>string</code>=== | ||
[[Ruby/String|سلسلة نصية]] تمثل اسم الدالة المراد إنشاؤها. | |||
<code>...</code> | |||
==القيمة | كائن من النوع <code>[[Ruby/Symbol|Symbol]]</code> أو [[Ruby/String|سلسلة نصية]] تمثل اسم الدالة المراد إنشاؤها. | ||
==القيمة المعادة== | |||
يعاد الكائن المعطى. | |||
==أمثلة== | ==أمثلة== | ||
سطر 42: | سطر 50: | ||
c.call_one #=> "This is the new one"</syntaxhighlight> | c.call_one #=> "This is the new one"</syntaxhighlight> | ||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Module/module_exec|module_exec]]</code>: يقيّم | * التابع <code>[[Ruby/Module/module_exec|module_exec]]</code>: يقيّم الكتلة الممررة في سياق الصنف/الوحدة. | ||
* التابع <code>[[Ruby/Module/name|name]]</code>: يعيد | * التابع <code>[[Ruby/Module/name|name]]</code>: يعيد اسم الوحدة. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-module_function قسم | *[http://ruby-doc.org/core-2.5.1/Module.html#method-i-module_function قسم التابع module_function في الصنف Module في توثيق روبي الرسمي.] |
المراجعة الحالية بتاريخ 15:25، 19 نوفمبر 2018
ينشئ التابع module_function
دوال وحدة (module functions) للتوابع المعطاة. يمكن استدعاء هذه الدوال مع الوحدة كمُستقبِلات (receiver)، كما يمكن أن تصبح متاحةً كتوابع نسخة (instance methods) للأصناف التي تُمزج (mix) في الوحدة. دوال النوع Module
هي نسخ من الدوال الأصلية، وبالتالي يمكن تغييرها بشكل مستقل.
توابع النسخة (instance-method) ستتحول إلى خاصة. وإذا تم استدعاء التابع module_function
دون معاملات، فستصبح التوابع التي ستُعرَّف لاحقًا دوال وحدة (module functions).
تُحوّل الوسائط النصية إلى رموز.
البنية العامة
module_function(symbol, ...) → self
module_function(string, ...) → self
المعاملات
symbol
كائن من النوع Symbol
يمثل اسم الدالة المراد إنشاؤها.
string
سلسلة نصية تمثل اسم الدالة المراد إنشاؤها.
...
كائن من النوع Symbol
أو سلسلة نصية تمثل اسم الدالة المراد إنشاؤها.
القيمة المعادة
يعاد الكائن المعطى.
أمثلة
مثال على استخدام التابع module_function
:
module Mod
def one
"This is one"
end
module_function :one
end
class Cls
include Mod
def call_one
one
end
end
Mod.one #=> "This is one"
c = Cls.new
c.call_one #=> "This is one"
module Mod
def one
"This is the new one"
end
end
Mod.one #=> "This is one"
c.call_one #=> "This is the new one"
انظر أيضا
- التابع
module_exec
: يقيّم الكتلة الممررة في سياق الصنف/الوحدة. - التابع
name
: يعيد اسم الوحدة.