التابع 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) في المصدر إلى كائن في روبي.