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