التابع dump الخاص بالصنف Marshal في روبي
يُسلسل (Serializes) التابع dump الوسيط المعطى obj (انظر فقرة البنية العام) وجميع الكائنات المنحدرة منه (descendant objects). في حال تمرير كائن IO، فستُكتب البيانات المُسَلسلة فيه، وإلا فستُعاد البيانات كسلسلة نصية (String).
في حال تمرير الوسيط limit، فسيقتصر التابع dump على سَلسَلة الكائنات الفرعية حتى العمق المحدد. إذا كان limit سالباً، لن يكون هناك أي تحقق من للعمق.
لا يمكن للتابع Marshal تفريغ (dump) الكائنات التالية:
- الوحدات أو الأصناف المجهولة (anonymous Class/Module).
- الكائنات المرتبطة بالنظام (مثل:
DirوFile::StatوIOوFileو Socket وغيرها). - كائنات الأصناف
MatchDataوDataوMethodوUnboundMethodوProcوThreadوThreadGroupوContinuation - الكائنات التي تعرف توابع مفردة (singleton methods).
البنية العامة
dump( obj [, anIO] , limit=-1 ) → anIO
المعاملات
obj
الكائن المراد سَلسَلته.
anIO
ي حال تمريره، فستُكتب البيانات المُسَلسلة فيه
limit
يحدد الحد الأقصى لللعمق.
القيمة المُعادة
يعيد التابع dump البيانات المُسَلسلة.
أمثلة
مثال على استخدام التابع dump:
class Klass
def initialize(str)
@str = str
end
def say_hello
@str
end
end
لن تكون هناك أي مخرجات.
o = Klass.new("hello\n")
data = Marshal.dump(o)
obj = Marshal.load(data)
obj.say_hello #=> "hello\n"
انظر أيضا
- التابع
load: يعيد نتيجة تحويل البيانات المُسلسلة (serialized) في المصدر إلى كائن في روبي.