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

من موسوعة حسوب
أنشأ الصفحة ب'{{DISPLAYTITLE:الوحدة <code>ObjectSpace</code> في روبي}} تحتوي الوحدة <code>ObjectSpace</code> على مجموعةٍ من البرامج الفر...'
 
طلا ملخص تعديل
سطر 19: سطر 19:
== توابع الصنف العامة (Public Class Methods) ==
== توابع الصنف العامة (Public Class Methods) ==


=== <code>id2ref_</code> ===
=== <code>[[Ruby/ObjectSpace/ id2ref|id2ref_]]</code> ===
يُحوِّل معرِّف الكائن (id) إلى مرجعٍ للكائن.
يُحوِّل معرِّف الكائن (id) إلى مرجعٍ للكائن.


=== <code>count_objects</code> ===
=== <code>[[Ruby/ObjectSpace/count objects|count_objects]]</code> ===
يُحصِي جميع الكائنات التي من نوعٍ واحد.
يُحصِي جميع الكائنات التي من نوعٍ واحد.


=== <code>define_finalizer</code> ===
=== <code>[[Ruby/ObjectSpace/define finalizer|define_finalizer]]</code> ===
يضيف كتلة <code>aProc</code> كمُنهِي (finalizer) ليُستدعى بعد تدمير الكائن.
يضيف كتلة <code>aProc</code> كمُنهِي (finalizer) ليُستدعى بعد تدمير الكائن.


=== <code>each_object</code> ===
=== <code>[[Ruby/ObjectSpace/each object|each_object]]</code> ===
يستدعي كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ (living object) أو غير مباشرٍ (nonimmediate object) في هذه العملية الحالية في روبي.
يستدعي كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ (living object) أو غير مباشرٍ (nonimmediate object) في هذه العملية الحالية في روبي.


=== <code>garbage_collect</code> ===
=== <code>[[Ruby/ObjectSpace/garbage collect|garbage_collect]]</code> ===
يبدأ عملية جمع المهملات (garbage collection).
يبدأ عملية جمع المهملات (garbage collection).


=== <code>undefine_finalizer</code> ===
=== <code>[[Ruby/ObjectSpace/undefine finalizer|undefine_finalizer]]</code> ===
يحذف جميع مُنهِيَات (finalizers) الكائن المعطى.
يحذف جميع مُنهِيَات (finalizers) الكائن المعطى.



مراجعة 10:36، 25 نوفمبر 2018

تحتوي الوحدة ObjectSpace على مجموعةٍ من البرامج الفرعيَّة (routines) التي تتفاعل مع وسائل جمع المهملات وتسمح لك باجتياز جميع الكائنات النشطة مع مُكرَّر (iterator).

تقدِّم الوحدة ObjectSpace الدَّعم أيضًا لمُنهِيَات كائنٍ (object finalizers) وكتل procs التي تُستدعى عندما يكون كائنٌ محدَّدٌ على وشك أن يُدمَّر عبر مجمِّع المهملات.

require 'objspace'

a = "A"
b = "B"

ObjectSpace.define_finalizer(a, proc {|id| puts "Finalizer one on #{id}" })
ObjectSpace.define_finalizer(b, proc {|id| puts "Finalizer two on #{id}" })

ينتج عن تطبيق المثال السابق:

Finalizer two on 537763470
Finalizer one on 537763480

توابع الصنف العامة (Public Class Methods)

id2ref_

يُحوِّل معرِّف الكائن (id) إلى مرجعٍ للكائن.

count_objects

يُحصِي جميع الكائنات التي من نوعٍ واحد.

define_finalizer

يضيف كتلة aProc كمُنهِي (finalizer) ليُستدعى بعد تدمير الكائن.

each_object

يستدعي كتلةً محدَّدةً مرةً لكل كائنٍ نشطٍ (living object) أو غير مباشرٍ (nonimmediate object) في هذه العملية الحالية في روبي.

garbage_collect

يبدأ عملية جمع المهملات (garbage collection).

undefine_finalizer

يحذف جميع مُنهِيَات (finalizers) الكائن المعطى.

مصادر