الفرق بين المراجعتين لصفحة: «Ruby/Module/protected»

من موسوعة حسوب
< Ruby‏ | Module
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>protected‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Module.protected‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Module]]
[[تصنيف: Ruby Module Class]]
في حال استدعاء التابع <code>protected</code> دون تمرير أي وسائط، فسيضبط المنظورية (visibility) الافتراضية للتوابع المعرفة لاحقًا عند القيمة <code>protected</code>. أما في حال تمرير وسائط، فسيضبط منظورية التوابع المعطاة عند القيمة <code>protected</code>. تُحول الوسائط النصية <code>String</code> إلى رموز.
يعين التابع <code>protected</code> [[Ruby/modules and classes#.D8.A7.D9.84.D9.85.D8.B1.D8.A6.D9.8A.D8.A9|المرئية]] (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى المرئية <code>protected</code> المحمية إن لم يمُرَّر إليه أي شيء. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبط [[Ruby/modules and classes#.D8.A7.D9.84.D9.85.D8.B1.D8.A6.D9.8A.D8.A9|مرئية]] هذه التوابع المرئية <code>protected</code> المحمية. 


إن كانت منظورية تابع محمية (<code>protected)</code>، فلن يكون قابلًا للاستدعاء إلا عندما يكون المتغير <code>self</code> الخاص بالسياق هو التابع نفسه. (في تعريف التابع أو <code>instance_eval</code>). يختلف هذا السلوك عن الأسلوب المحمي في Java. وعادة ما يجب استخدام <code>private</code>.
إن كانت مرئية تابعٍ محمية، فلن يكون قابلًا للاستدعاء إلا عندما يكون المتغير <code>self</code> الخاص بالسياق هو التابع نفسه. (في تعريف التابع أو <code>instance_eval</code>). يختلف هذا السلوك عن الأسلوب المحمي في Java. وعادة ما يجب استخدام <code>private</code>.


لاحظ أن التوابع المحمية بطيئة لأنه لا يمكنها استخدام ذاكرة التخزين المؤقت المضمّنة (inline cache).
لاحظ أن التوابع المحمية بطيئة لأنه لا يمكنها استخدام ذاكرة التخزين المؤقتة الداخلية (inline cache).


لإظهار تابع خاص على RDoc، استخدم <code>:doc:</code> بدلاً من هذا.
لإظهار تابع خاص على RDoc، استخدم <code>:doc:</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">protected → self
<syntaxhighlight lang="ruby">protected → self
سطر 16: سطر 16:
==المعاملات==
==المعاملات==
===<code>symbol‎</code>===
===<code>symbol‎</code>===
رمز يمثل التابع.
[[Ruby/Symbol|رمز]] يمثل التابع المراد ضبط مرئيته إلى محمية.


===<code>string‎</code>===
===<code>string‎</code>===
سلسلة نصية تمثل التابع.
[[Ruby/String|سلسلة نصية]] تمثل التابع المراد ضبط مرئيته إلى محمية.  يحول هذا المعامل إن أعطي إلى [[Ruby/Symbol|رمز]].
==القيمة المُعادة==
 
يعيد التابع <code>protected</code> الكائن الكائن <code>self</code>.
<code>...</code>
 
[[Ruby/Symbol|رمز]] أو [[Ruby/String|سلسلة نصية]] تمثل التوابع المراد ضبط مرئيتها إلى محمية.
==القيمة المعادة==
يعاد التابع ذو الاسم <code>symbol‎</code> أو <code>string‎</code> المحدَّد بعد ضبط مرئيته إلى محمية.


==انظر أيضا==
==انظر أيضا==
*التابع <code>[[Ruby/Module/private method defined-3F|private_method_defined?‎]]</code>: يعيد  القيمة <code>true</code> إن كان التابع الخاص المعطى معرفًا من طرف <code>_mod_</code>
*التابع <code>[[Ruby/Module/protected method defined-3F|protected_method_defined?‎]]</code>: يتحقق إن كان التابع المحمي (protected) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا).
*التابع <code>[[Ruby/Module/protected instance methods|protected_instance_methods]]</code>: يعيد  قائمة بتوابع النسخة (instance methods) المحمية المعرفة في <code>mod</code>.
*التابع <code>[[Ruby/Module/protected instance methods|protected_instance_methods]]</code>: يعيد  قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة.
*التابع <code>[[Ruby/Module/private instance methods|private_instance_methods]]</code>: يعيد قائمة بتوابع النسخة (instance methods) الخاصة (private) المعرفة في mod.
*التابع <code>[[Ruby/Module/private instance methods|private_instance_methods]]</code>: يعيد قائمة بتوابع النسخة الخاصة المعرفة في الوحدة.
==مصادر==
==مصادر==
*[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‎ في توثيق روبي الرسمي.]

المراجعة الحالية بتاريخ 16:55، 19 نوفمبر 2018

يعين التابع protected المرئية (visibility) الافتراضية للتوابع المعرفة لاحقًا إلى المرئية protected المحمية إن لم يمُرَّر إليه أي شيء. أما في حال تمرير اسم تابع (أو عدة توابع إليه)، فسيضبط مرئية هذه التوابع المرئية protected المحمية. 

إن كانت مرئية تابعٍ محمية، فلن يكون قابلًا للاستدعاء إلا عندما يكون المتغير self الخاص بالسياق هو التابع نفسه. (في تعريف التابع أو instance_eval). يختلف هذا السلوك عن الأسلوب المحمي في Java. وعادة ما يجب استخدام private.

لاحظ أن التوابع المحمية بطيئة لأنه لا يمكنها استخدام ذاكرة التخزين المؤقتة الداخلية (inline cache).

لإظهار تابع خاص على RDoc، استخدم :doc:.

البنية العامة

protected  self
protected(symbol, ...) self
protected(string, ...) self

المعاملات

symbol‎

رمز يمثل التابع المراد ضبط مرئيته إلى محمية.

string‎

سلسلة نصية تمثل التابع المراد ضبط مرئيته إلى محمية. يحول هذا المعامل إن أعطي إلى رمز.

...

رمز أو سلسلة نصية تمثل التوابع المراد ضبط مرئيتها إلى محمية.

القيمة المعادة

يعاد التابع ذو الاسم symbol‎ أو string‎ المحدَّد بعد ضبط مرئيته إلى محمية.

انظر أيضا

  • التابع protected_method_defined?‎: يتحقق إن كان التابع المحمي (protected) المعطى معرفًا في الوحدة (أو الوحدات المُتضمنة فيه، أو أسلافه إن كان صنفًا).
  • التابع protected_instance_methods: يعيد قائمة بتوابع النسخة (instance methods) المحمية المعرفة في الوحدة.
  • التابع private_instance_methods: يعيد قائمة بتوابع النسخة الخاصة المعرفة في الوحدة.

مصادر