الفرق بين المراجعتين ل"Ruby/Object/extend"
اذهب إلى التنقل
اذهب إلى البحث
(أنشأ الصفحة ب'{{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 | |
− | + | "Hello from Mod.\n" | |
− | + | end | |
− | |||
− | |||
− | |||
− | |||
end | end | ||
class Klass | class Klass | ||
− | + | def hello | |
− | + | "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" | ||
− | + | </syntaxhighlight> | |
− | + | == انظر أيضًا == | |
+ | *التابع <code>[[Ruby/Object/itself|itself]]</code>: يُعيد الكائن المستقبل. | ||
+ | *التابع <code>[[Ruby/Object/inspect|inspect]]</code>: يُعيد سلسلةً نصيةً تحتوي تمثيلًا يفهمه البشر للكائن الذي استدعي معه. | ||
− | + | *التابع <code>[[Ruby/Object/to s|to_s]]</code>: يُعيد سلسلةً نصيةً تُمثِّل الكائن الذي استدعي معه. | |
− | + | * التابع <code>[[Ruby/Object/object id|object_id]]</code>: يعيد مُعرِّفا عدديًا للكائن الذي استُدعي معه. | |
− | + | * التابع <code>[[Ruby/Object/display|display]]</code>: يَطبع الكائن الذي استدعي معه على المنفذ المعطى. | |
− | |||
− | |||
− | * التابع 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
: يَطبع الكائن الذي استدعي معه على المنفذ المعطى.