التابع Marshal.dump
في روبي
يُسلسل (Serializes) التابع dump
الكائن المعطى وجميع الكائنات المنحدرة منه (descendant objects). في حال تمرير كائن من النوع IO
، فستُكتب البيانات المُسَلسلة فيه، وإلا فستُعاد البيانات كسلسلة نصية.
البنية العامة
dump( obj [, anIO] , limit=-1 ) → anIO
في حال تمرير المعامل limit
، فسيقتصر التابع dump
على سَلسَلة الكائنات الفرعية حتى العمق المحدد. إذا كان limit
سالبًا، لن يكون هناك أي تحقق من للعمق.
لا يمكن للتابع Marshal
تفريغ (dump) الكائنات التالية:
- الوحدات أو الأصناف المجهولة (anonymous Class/Module).
- الكائنات المرتبطة بالنظام (مثل
Dir
وFile::Stat
وIO
وFile
وSocket
وغيرها). - نُسَخ الأصناف
MatchData
وData
وMethod
وUnboundMethod
وProc
وThread
وThreadGroup
وContinuation
- الكائنات التي تعرف توابع مفردة (singleton methods).
المعاملات
obj
الكائن المراد سَلسَلته.
anIO
كائن من النوع IO
، في حال تمريره، فستُكتب البيانات المُسَلسلة فيه.
limit
يحدد الحد الأقصى لعمق الكائنات الفرعية المراد سلسلتها.
القيمة المعادة
تُعاد البيانات المُسَلسلة في الكائن IO
إن أعطي المعامل anIO
أو في سلسلة نصية.
أمثلة
مثال على استخدام التابع 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) في المصدر إلى كائن في روبي.