الفرق بين المراجعتين ل"Ruby/Marshal"

من موسوعة حسوب
اذهب إلى التنقل اذهب إلى البحث
(أنشأ الصفحة ب'يُطلق الخطأ <code>LocalJumpError</code> عندما لا تتمكن روبي من الإعادة (yield) كما هو مطلوب. يحدث هذا مثلا،...')
 
سطر 11: سطر 11:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
==توابع الكائن العامة (Public Instance Methods)==
+
==توابع الصنف العامة (Public Class Methods)==
=== [[Ruby/LocalJumpError/exit value|التابع exit_value]]===
+
===[[Ruby/Marshal/dump | التابع ::dump]]===
يعيد التابع <code>exit_value</code> قيمة الخروج المرتبطة بالاستثناء <code>[[Ruby/LocalJumpError|LocalJumpError]]</code>.
+
يُسلسل (Serializes) ظظظ الوسيط المعطى obj ططط وجميع الكائنات المنحدرة (descendant objects). في حال تمرير كائن IO، فستُكتب البيانات المُسَلسلة فيه، وإلا فستُعاد البيانات كسلسلة نصية (<code>String</code>). في حال تمرير limit، فسيقتصر عمل ظظظ على الكائنات الفرعية على العمق المحدد به. إذا كان limit سالباً، لن يتم إجراء أي تحقق للعمق.
=== [[Ruby/LocalJumpError/reason|التابع reason]]===
+
===[[Ruby/Marshal/load | التابع ::load]]===
يعيد التابع <code>reason</code> سبب إنهاء الكتلة البرمجية: ‎ <code>:break</code>أو <code>‎:redo</code> أو <code>‎:retry</code> أو <code>‎:next</code> أو ‎ <code>:return</code> أو ‎<code>:noreason</code> .
+
يعيد ظظظ نتيجة تحويل البيانات المُسلسلة (serialized) في المصدر إلى كائن في روبي (ربما مع كائنات ثانوية [subordinate objects] مرتبطة به). قد يكون المصدر إما نسخة من <code>IO</code>، أو كائنًا يستجيب إلى to_str. في حال تمرير الوسيط proc، فسيتم تمرير كل الكائنات إلى proc، أثناء فك تسلسلها (deserialisation).
 +
===[[Ruby/Marshal/restore | التابع ::restore]]===
 +
يعيد ظظظ نتيجة تحويل البيانات المُسلسلة (serialized) في المصدر إلى كائن في روبي (ربما مع كائنات ثانوية [subordinate objects] مرتبطة به). قد يكون المصدر إما كائنًا من الصنف <code>IO</code> أو كائنًا يستجيب إلى to_str. في حال تمرير الوسيط proc ، فسيتم تمرير كل الكائنات إلى proc، أثناء فك تسلسلها (deserialisation).
 +
 
 
==مصادر<span> </span>==
 
==مصادر<span> </span>==
 
*[http://ruby-doc.org/core-2.5.1/LocalJumpError.html قسم  الصنف Marshal في توثيق روبي الرسمي.]
 
*[http://ruby-doc.org/core-2.5.1/LocalJumpError.html قسم  الصنف Marshal في توثيق روبي الرسمي.]

مراجعة 16:59، 24 أكتوبر 2018

يُطلق الخطأ LocalJumpError عندما لا تتمكن روبي من الإعادة (yield) كما هو مطلوب.

يحدث هذا مثلا، عند محاولة الإعادة (yield) في غياب أي كتلة برمجية.

def call_block
  yield 42
end
call_block

تطلق الشيفرة أعلاه استثناء:

LocalJumpError: no block given (yield)

توابع الصنف العامة (Public Class Methods)

التابع ::dump

يُسلسل (Serializes) ظظظ الوسيط المعطى obj ططط وجميع الكائنات المنحدرة (descendant objects). في حال تمرير كائن IO، فستُكتب البيانات المُسَلسلة فيه، وإلا فستُعاد البيانات كسلسلة نصية (String). في حال تمرير limit، فسيقتصر عمل ظظظ على الكائنات الفرعية على العمق المحدد به. إذا كان limit سالباً، لن يتم إجراء أي تحقق للعمق.

التابع ::load

يعيد ظظظ نتيجة تحويل البيانات المُسلسلة (serialized) في المصدر إلى كائن في روبي (ربما مع كائنات ثانوية [subordinate objects] مرتبطة به). قد يكون المصدر إما نسخة من IO، أو كائنًا يستجيب إلى to_str. في حال تمرير الوسيط proc، فسيتم تمرير كل الكائنات إلى proc، أثناء فك تسلسلها (deserialisation).

التابع ::restore

يعيد ظظظ نتيجة تحويل البيانات المُسلسلة (serialized) في المصدر إلى كائن في روبي (ربما مع كائنات ثانوية [subordinate objects] مرتبطة به). قد يكون المصدر إما كائنًا من الصنف IO أو كائنًا يستجيب إلى to_str. في حال تمرير الوسيط proc ، فسيتم تمرير كل الكائنات إلى proc، أثناء فك تسلسلها (deserialisation).

مصادر