التابع Marshal.dump‎ في روبي

من موسوعة حسوب
< Ruby‏ | Marshal
مراجعة 08:12، 17 نوفمبر 2018 بواسطة جميل-بيلوني (نقاش | مساهمات) (مراجعة وتدقيق.)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)

يُسلسل (Serializes) التابع dump الكائن المعطى وجميع الكائنات المنحدرة منه (descendant objects). في حال تمرير كائن من النوع IO، فستُكتب البيانات المُسَلسلة فيه، وإلا فستُعاد البيانات كسلسلة نصية.

البنية العامة

dump( obj [, anIO] , limit=-1 )  anIO

في حال تمرير المعامل limit، فسيقتصر التابع dump على سَلسَلة الكائنات الفرعية حتى العمق المحدد. إذا كان limit سالبًا، لن يكون هناك أي تحقق من للعمق.

لا يمكن للتابع Marshal تفريغ (dump) الكائنات التالية:

المعاملات

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

مصادر