التابع Object.each_object
في روبي
يستدعي التابع each_object
كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ (living object) أو غير مباشرٍ (nonimmediate object) في هذه العملية الحالية في روبي. إذا حُدِّدت الوحدة (module) المراد تنفيذ الكتلة عليها، فسيستدعي التابع الكتلة للأصناف أو الوحدات المماثلة لهذه الوحدة (أو لتلك التي تكون صنفًا فرعيًا منها). يُعيد التابع each_object
عدد الكائنات التي عُثر عليها. لا تُعاد الكائنات المباشرة (مثل Fixnums
، و Symbols
، و true
، و false
، و nil
) أبدًا.
إذا لم تُعطَ أي كتلة إلى التابع each_object
، فستُعاد نسخةٌ من الصنف Enumerator
.
البنية العامة
each_object([module]) {|obj| ... } → integer11
each_object([module]) → an_enumerator
المعاملات
module
الوحدة المراد استدعاء الكتلة للأصناف أو الوحدات المماثلة لها فقط (أو لتلك التي تكون صنفًا فرعيًا منها).
obj
الكائن التي ستُنفَّذ عليه الكتلة.
…
الكتلة المراد تنفيذها على الكائن obj
.
القيم المعادة
يُعاد عددٌ صحيحٌ (integer) يمثِّل عدد الكائنات التي عُثر عليها في حال عُيِّن المعامل module
؛ خلاف ذلك، تُعاد نسخةٌ من الصنف Enumerator
.
أمثلة
مثالٌ عن استخدام التابع each_object
. يُعيد التابع في هذا المثال كُلًّا من الأعداد التي عرفناها والثوابت المتعدَّدة المُعرفة في الوحدة Math
:
a = 102.7
b = 95 # Won't be returned
c = 12345678987654321
count = ObjectSpace.each_object(Numeric) {|x| p x }
puts "Total count: #{count}"
ينتج عن تنفيذ المثال السابق:
12345678987654321
102.7
2.71828182845905
3.14159265358979
2.22044604925031e-16
1.7976931348623157e+308
2.2250738585072e-308
Total count: 7
انظر أيضًا
- التابع
id2ref_
: يُحوِل معرِّف الكائن إلى مرجعٍ للكائن. - التابع
count_objects
: يُحصِي جميع الكائنات التي من نوعٍ واحد.
- التابع
define_finalizer
: يضيف كتلةaProc
كمُنهِي ليُستدعى بعد تدمير الكائن.
- التابع
garbage_collect
: يبدأ عملية جمع المهملات. - التابع
undefine_finalizer
: يحذف جميع مُنهِيَات الكائن المعطى. - صفحة التابع each_object في الصنف Object في توثيق روبي الرسمي.