Serialization

يوفر تسلسل كائنات جوليا.

Serialization.serializeFunction
serialize(stream::IO, value)

اكتب قيمة عشوائية إلى دفق بتنسيق غير شفاف، بحيث يمكن قراءتها مرة أخرى بواسطة deserialize. ستكون القيمة المعادة متطابقة قدر الإمكان مع الأصل، ولكن لاحظ أن قيم Ptr يتم تسلسلها كأنماط بتات صفرية بالكامل (NULL).

يتم كتابة رأس تعريف مكون من 8 بايت إلى الدفق أولاً. لتجنب كتابة الرأس، قم بإنشاء Serializer واستخدمه كأول وسيط لـ serialize بدلاً من ذلك. انظر أيضًا إلى Serialization.writeheader.

يمكن أن يتغير تنسيق البيانات في إصدارات جوليا الثانوية (1.x)، ولكن ستظل الملفات المكتوبة بواسطة إصدارات 1.x السابقة قابلة للقراءة. الاستثناء الرئيسي لذلك هو عندما يتغير تعريف نوع في حزمة خارجية. إذا حدث ذلك، قد يكون من الضروري تحديد إصدار متوافق صريح من الحزمة المتأثرة في بيئتك. يمكن أن يؤدي إعادة تسمية الدوال، حتى الدوال الخاصة، داخل الحزم أيضًا إلى عدم توافق الملفات الموجودة. تتطلب الدوال المجهولة عناية خاصة: لأنه يتم إنشاء أسمائها تلقائيًا، يمكن أن تتسبب التغييرات الطفيفة في الكود في إعادة تسميتها. يجب تجنب تسلسل الدوال المجهولة في الملفات المخصصة للتخزين على المدى الطويل.

في بعض الحالات، يجب أن يتطابق حجم الكلمة (32 أو 64 بت) بين الآلات التي تقرأ وتكتب. في حالات نادرة، يجب أن يتطابق نظام التشغيل أو المعمارية أيضًا، على سبيل المثال عند استخدام حزم تحتوي على كود يعتمد على النظام الأساسي.

source
serialize(filename::AbstractString, value)

افتح ملفًا وقم بتسلسل القيمة المعطاة إليه.

Julia 1.1

هذه الطريقة متاحة اعتبارًا من Julia 1.1.

source
Serialization.deserializeFunction
deserialize(stream)

اقرأ قيمة مكتوبة بواسطة serialize. تفترض deserialize أن البيانات الثنائية المقروءة من stream صحيحة وقد تم تسلسلها بواسطة تنفيذ متوافق مع serialize. تم تصميم deserialize من أجل البساطة والأداء، وبالتالي لا تتحقق من صحة البيانات المقروءة. يمكن أن تؤدي البيانات غير الصحيحة إلى إنهاء العملية. يجب على المتصل ضمان سلامة وصحة البيانات المقروءة من stream.

source
deserialize(filename::AbstractString)

افتح ملفًا وفك تسلسل محتوياته.

Julia 1.1

هذه الطريقة متاحة اعتبارًا من Julia 1.1.

source
Serialization.writeheaderFunction
Serialization.writeheader(s::AbstractSerializer)

اكتب رأس تعريف للملف التسلسلي المحدد. يتكون الرأس من 8 بايت كما يلي:

الإزاحةالوصف
0بايت العلامة (0x37)
1-2بايت التوقيع "JL"
3إصدار البروتوكول
4البتات 0-1: ترتيب البايت: 0 = صغير، 1 = كبير
4البتات 2-3: النظام الأساسي: 0 = 32-بت، 1 = 64-بت
5-7محجوز
source