الفرق بين المراجعتين ل"Ruby/Object/extend"

من موسوعة حسوب
< Ruby‏ | Object
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'{{DISPLAYTITLE:التابع Object.extend في روبي}} يُضيف التابع <code>extend</code> توابع النسخة (instance) من كُلِّ وحدةٍ مُ...')
 
ط
 
سطر 1: سطر 1:
{{DISPLAYTITLE:التابع Object.extend في روبي}}
+
{{DISPLAYTITLE:التابع <code>Object.extend</code> في روبي}}
 
 
 
يُضيف التابع <code>extend</code> توابع النسخة (instance) من كُلِّ وحدةٍ مُرِّرت إليه إلى الكائن الذي استدعي معه.
 
يُضيف التابع <code>extend</code> توابع النسخة (instance) من كُلِّ وحدةٍ مُرِّرت إليه إلى الكائن الذي استدعي معه.
  
سطر 10: سطر 9:
 
== المعاملات ==
 
== المعاملات ==
  
=== module ===
+
=== <code>module</code> ===
 
الوحدة المراد إضافة توابع النسخة منها.
 
الوحدة المراد إضافة توابع النسخة منها.
  
سطر 17: سطر 16:
  
 
== أمثلة ==
 
== أمثلة ==
مثالٌ عن استخدام التابع extend:
+
مثالٌ عن استخدام التابع <code>extend</code>:<syntaxhighlight lang="ruby">
 
 
 
module Mod
 
module Mod
 
+
  def hello
 def hello
+
    "Hello from Mod.\n"
 
+
  end
   "Hello from Mod.\n"
 
 
 
 end
 
 
 
 
end
 
end
  
 
class Klass
 
class Klass
 
+
  def hello
 def hello
+
    "Hello from Klass.\n"
 
+
  end
   "Hello from Klass.\n"
 
 
 
 end
 
 
 
 
end
 
end
  
 
k = Klass.new
 
k = Klass.new
 +
k.hello        #=> "Hello from Klass.\n"
 +
k.extend(Mod)  #=> #<Klass:0x401b3bc8>
 +
k.hello        #=> "Hello from Mod.\n"
  
k.hello         #=> "Hello from Klass.\n"
+
</syntaxhighlight>
  
k.extend(Mod)   #=> #<Klass:0x401b3bc8>
+
== انظر أيضًا ==
 +
*التابع <code>[[Ruby/Object/itself|itself]]</code>: يُعيد الكائن المستقبل.
 +
*التابع <code>[[Ruby/Object/inspect|inspect]]</code>: يُعيد سلسلةً نصيةً تحتوي تمثيلًا  يفهمه البشر للكائن الذي استدعي معه.
  
k.hello         #=> "Hello from Mod.\n"
+
*التابع <code>[[Ruby/Object/to s|to_s]]</code>: يُعيد سلسلةً نصيةً تُمثِّل الكائن الذي استدعي معه.
  
== انظر أيضًا ==
+
* التابع <code>[[Ruby/Object/object id|object_id]]</code>: يعيد مُعرِّفا عدديًا للكائن الذي استُدعي معه.
* التابع itself: يُعيد الكائن المستقبل.
+
* التابع <code>[[Ruby/Object/display|display]]</code>: يَطبع الكائن الذي استدعي معه على المنفذ المعطى.
* التابع inspect: يُعيد سلسلةً نصيةً تحتوي تمثيلًا  يفهمه البشر للكائن الذي استدعي معه.
 
* التابع to_s: يُعيد سلسلةً نصيةً تُمثِّل الكائن الذي استدعي معه.
 
* التابع object_id: يعيد مُعرِّفا عدديًا للكائن الذي استُدعي معه.
 
* التابع display: يَطبع الكائن الذي استدعي معه على المنفذ المعطى.
 
  
 
== مصادر ==
 
== مصادر ==

المراجعة الحالية بتاريخ 17:45، 22 نوفمبر 2018

يُضيف التابع extend توابع النسخة (instance) من كُلِّ وحدةٍ مُرِّرت إليه إلى الكائن الذي استدعي معه.

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

extend(module, ...)  obj

المعاملات

module

الوحدة المراد إضافة توابع النسخة منها.

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

يُعاد الكائن المعطى مضافًا إليه توابع النسخة من الوحدات المُمرَّرة.

أمثلة

مثالٌ عن استخدام التابع extend:

module Mod
  def hello
    "Hello from Mod.\n"
  end
end

class Klass
  def hello
    "Hello from Klass.\n"
  end
end

k = Klass.new
k.hello         #=> "Hello from Klass.\n"
k.extend(Mod)   #=> #<Klass:0x401b3bc8>
k.hello         #=> "Hello from Mod.\n"

انظر أيضًا

  • التابع itself: يُعيد الكائن المستقبل.
  • التابع inspect: يُعيد سلسلةً نصيةً تحتوي تمثيلًا  يفهمه البشر للكائن الذي استدعي معه.
  • التابع to_s: يُعيد سلسلةً نصيةً تُمثِّل الكائن الذي استدعي معه.
  • التابع object_id: يعيد مُعرِّفا عدديًا للكائن الذي استُدعي معه.
  • التابع display: يَطبع الكائن الذي استدعي معه على المنفذ المعطى.

مصادر