الفرق بين المراجعتين ل"Ruby/Module/protected"
اذهب إلى التنقل
اذهب إلى البحث
(أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>protected</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude> تصنيف: Ruby تص...') |
|||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Module]] | [[تصنيف: Ruby Module]] | ||
− | في حال استدعاء التابع <code>protected</code> دون تمرير أي وسائط، | + | في حال استدعاء التابع <code>protected</code> دون تمرير أي وسائط، فسيضبط المنظورية (visibility) الافتراضية للتوابع المعرفة لاحقًا عند القيمة <code>protected</code>. أما في حال تمرير وسائط، فسيضبط منظورية التوابع المعطاة عند القيمة <code>protected</code>. تُحول الوسائط النصية <code>String</code> إلى رموز. |
− | إن كانت منظورية تابع | + | |
+ | إن كانت منظورية تابع محمية (<code>protected)</code>، فلن يكون قابلًا للاستدعاء إلا عندما يكون المتغير <code>self</code> الخاص بالسياق هو التابع نفسه. (في تعريف التابع أو <code>instance_eval</code>). يختلف هذا السلوك عن الأسلوب المحمي في Java. وعادة ما يجب استخدام <code>private</code>. | ||
+ | |||
لاحظ أن التوابع المحمية بطيئة لأنه لا يمكنها استخدام ذاكرة التخزين المؤقت المضمّنة (inline cache). | لاحظ أن التوابع المحمية بطيئة لأنه لا يمكنها استخدام ذاكرة التخزين المؤقت المضمّنة (inline cache). | ||
− | لإظهار تابع خاص على RDoc، استخدم | + | |
+ | لإظهار تابع خاص على RDoc، استخدم <code>:doc:</code> بدلاً من هذا. | ||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">protected → self | <syntaxhighlight lang="ruby">protected → self | ||
سطر 13: | سطر 16: | ||
==المعاملات== | ==المعاملات== | ||
===<code>symbol</code>=== | ===<code>symbol</code>=== | ||
− | + | رمز يمثل التابع. | |
− | |||
===<code>string</code>=== | ===<code>string</code>=== | ||
− | + | سلسلة نصية تمثل التابع. | |
− | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
+ | يعيد التابع <code>protected</code> الكائن الكائن <code>self</code>. | ||
==انظر أيضا== | ==انظر أيضا== | ||
− | * التابع <code>[[Ruby/Module/ | + | *التابع <code>[[Ruby/Module/private method defined-3F|private_method_defined?]]</code>: يعيد القيمة <code>true</code> إن كان التابع الخاص المعطى معرفًا من طرف <code>_mod_</code> |
− | * التابع <code>[[Ruby/Module/ | + | *التابع <code>[[Ruby/Module/protected instance methods|protected_instance_methods]]</code>: يعيد قائمة بتوابع النسخة (instance methods) المحمية المعرفة في <code>mod</code>. |
− | + | *التابع <code>[[Ruby/Module/private instance methods|private_instance_methods]]</code>: يعيد قائمة بتوابع النسخة (instance methods) الخاصة (private) المعرفة في mod. | |
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-protected قسم التابع protected في الصنف Module في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Module.html#method-i-protected قسم التابع protected في الصنف Module في توثيق روبي الرسمي.] |
مراجعة 09:45، 27 أكتوبر 2018
في حال استدعاء التابع protected
دون تمرير أي وسائط، فسيضبط المنظورية (visibility) الافتراضية للتوابع المعرفة لاحقًا عند القيمة protected
. أما في حال تمرير وسائط، فسيضبط منظورية التوابع المعطاة عند القيمة protected
. تُحول الوسائط النصية String
إلى رموز.
إن كانت منظورية تابع محمية (protected)
، فلن يكون قابلًا للاستدعاء إلا عندما يكون المتغير self
الخاص بالسياق هو التابع نفسه. (في تعريف التابع أو instance_eval
). يختلف هذا السلوك عن الأسلوب المحمي في Java. وعادة ما يجب استخدام private
.
لاحظ أن التوابع المحمية بطيئة لأنه لا يمكنها استخدام ذاكرة التخزين المؤقت المضمّنة (inline cache).
لإظهار تابع خاص على RDoc، استخدم :doc:
بدلاً من هذا.
البنية العامة
protected → self
protected(symbol, ...)→ self
protected(string, ...)→ self
المعاملات
symbol
رمز يمثل التابع.
string
سلسلة نصية تمثل التابع.
القيمة المُعادة
يعيد التابع protected
الكائن الكائن self
.
انظر أيضا
- التابع
private_method_defined?
: يعيد القيمةtrue
إن كان التابع الخاص المعطى معرفًا من طرف_mod_
- التابع
protected_instance_methods
: يعيد قائمة بتوابع النسخة (instance methods) المحمية المعرفة فيmod
. - التابع
private_instance_methods
: يعيد قائمة بتوابع النسخة (instance methods) الخاصة (private) المعرفة في mod.