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

من موسوعة حسوب
< Ruby‏ | Module
لا ملخص تعديل
ط مراجعة وتدقيق.
 
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE: التابع <code>extend_object‎</code> الخاص بالصنف <code>Module</code> في روبي}}</noinclude>
<noinclude>{{DISPLAYTITLE: التابع <code>Module.extend_object‎</code> في روبي}}</noinclude>
[[تصنيف: Ruby]]
[[تصنيف: Ruby]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Method]]
[[تصنيف: Ruby Module]]
[[تصنيف: Ruby Module Class]]
يوسع التابع <code>extend_object</code> الكائن المعطى <code>obj</code> بإضافة ثوابت و توابع هذه الوحدة (والتي تُضاف كتوابع فردية [singleton methods]).  
يوسع التابع <code>extend_object</code> الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة (والتي تُضاف كتوابع فردية [singleton methods]).  


هذا هو التابع المستخدم من قبل <code>[[Ruby/Object/extend|Object#extend]]</code>.
هذا هو التابع المستخدم من قبل <code>[[Ruby/Object/extend|Object.extend]]</code>.
==البنية العامة==
==البنية العامة==
<syntaxhighlight lang="ruby">extend_object(obj) → obj‎</syntaxhighlight>
<syntaxhighlight lang="ruby">extend_object(obj) → obj‎</syntaxhighlight>
سطر 11: سطر 11:
===<code>obj‎</code>===
===<code>obj‎</code>===


كائن.
الكائن المراد توسعته.
==القيمة المُعادة==
==القيمة المعادة==
يعيد الكائن <code>obj</code>.
يعاد الكائن <code>obj</code> بعد توسيعه.


==أمثلة==
==أمثلة==
سطر 28: سطر 28:
end
end
(s = Array.new).extend Picky  # Call Object.extend
(s = Array.new).extend Picky  # Call Object.extend
(s = "quick brown fox").extend Picky‎</syntaxhighlight>الناتج:<syntaxhighlight lang="ruby">Picky added to Array
(s = "quick brown fox").extend Picky‎</syntaxhighlight>ناتج تنفيذ هذا المثال هو:<syntaxhighlight lang="text">Picky added to Array
Can't add Picky to a String‎</syntaxhighlight>
Can't add Picky to a String‎</syntaxhighlight>
==انظر أيضا==
==انظر أيضا==
* التابع <code>[[Ruby/Module/extended|extended]]</code>: يكافئ <code>included</code>، إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).
* التابع <code>[[Ruby/Module/extended|extended]]</code>: يكافئ <code>included</code> إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).


==مصادر==
==مصادر==
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-extend_object قسم التابع extend_object‎ في الصنف Module‎ في توثيق روبي الرسمي.]
*[http://ruby-doc.org/core-2.5.1/Module.html#method-i-extend_object قسم التابع extend_object‎ في الصنف Module‎ في توثيق روبي الرسمي.]

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

يوسع التابع extend_object الكائن المعطى بإضافة ثوابت و توابع هذه الوحدة (والتي تُضاف كتوابع فردية [singleton methods]).

هذا هو التابع المستخدم من قبل Object.extend.

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

extend_object(obj)  obj

المعاملات

obj‎

الكائن المراد توسعته.

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

يعاد الكائن obj بعد توسيعه.

أمثلة

مثال على استخدام التابع extend_object‎:

module Picky
  def Picky.extend_object(o)
    if String === o
      puts "Can't add Picky to a String"
    else
      puts "Picky added to #{o.class}"
      super
    end
  end
end
(s = Array.new).extend Picky  # Call Object.extend
(s = "quick brown fox").extend Picky

ناتج تنفيذ هذا المثال هو:

Picky added to Array
Can't add Picky to a String‎

انظر أيضا

  • التابع extended: يكافئ included إلا أنه يُستخدم مع الوحدات الموسعة (extended modules).

مصادر