Serialization
يوفر تسلسل كائنات جوليا.
Serialization.serialize
— Functionserialize(stream::IO, value)
اكتب قيمة عشوائية إلى دفق بتنسيق غير شفاف، بحيث يمكن قراءتها مرة أخرى بواسطة deserialize
. ستكون القيمة المعادة متطابقة قدر الإمكان مع الأصل، ولكن لاحظ أن قيم Ptr
يتم تسلسلها كأنماط بتات صفرية بالكامل (NULL
).
يتم كتابة رأس تعريف مكون من 8 بايت إلى الدفق أولاً. لتجنب كتابة الرأس، قم بإنشاء Serializer
واستخدمه كأول وسيط لـ serialize
بدلاً من ذلك. انظر أيضًا إلى Serialization.writeheader
.
يمكن أن يتغير تنسيق البيانات في إصدارات جوليا الثانوية (1.x)، ولكن ستظل الملفات المكتوبة بواسطة إصدارات 1.x السابقة قابلة للقراءة. الاستثناء الرئيسي لذلك هو عندما يتغير تعريف نوع في حزمة خارجية. إذا حدث ذلك، قد يكون من الضروري تحديد إصدار متوافق صريح من الحزمة المتأثرة في بيئتك. يمكن أن يؤدي إعادة تسمية الدوال، حتى الدوال الخاصة، داخل الحزم أيضًا إلى عدم توافق الملفات الموجودة. تتطلب الدوال المجهولة عناية خاصة: لأنه يتم إنشاء أسمائها تلقائيًا، يمكن أن تتسبب التغييرات الطفيفة في الكود في إعادة تسميتها. يجب تجنب تسلسل الدوال المجهولة في الملفات المخصصة للتخزين على المدى الطويل.
في بعض الحالات، يجب أن يتطابق حجم الكلمة (32 أو 64 بت) بين الآلات التي تقرأ وتكتب. في حالات نادرة، يجب أن يتطابق نظام التشغيل أو المعمارية أيضًا، على سبيل المثال عند استخدام حزم تحتوي على كود يعتمد على النظام الأساسي.
serialize(filename::AbstractString, value)
افتح ملفًا وقم بتسلسل القيمة المعطاة إليه.
هذه الطريقة متاحة اعتبارًا من Julia 1.1.
Serialization.deserialize
— Functiondeserialize(stream)
اقرأ قيمة مكتوبة بواسطة serialize
. تفترض deserialize
أن البيانات الثنائية المقروءة من stream
صحيحة وقد تم تسلسلها بواسطة تنفيذ متوافق مع serialize
. تم تصميم deserialize
من أجل البساطة والأداء، وبالتالي لا تتحقق من صحة البيانات المقروءة. يمكن أن تؤدي البيانات غير الصحيحة إلى إنهاء العملية. يجب على المتصل ضمان سلامة وصحة البيانات المقروءة من stream
.
deserialize(filename::AbstractString)
افتح ملفًا وفك تسلسل محتوياته.
هذه الطريقة متاحة اعتبارًا من Julia 1.1.
Serialization.writeheader
— FunctionSerialization.writeheader(s::AbstractSerializer)
اكتب رأس تعريف للملف التسلسلي المحدد. يتكون الرأس من 8 بايت كما يلي:
الإزاحة | الوصف |
---|---|
0 | بايت العلامة (0x37) |
1-2 | بايت التوقيع "JL" |
3 | إصدار البروتوكول |
4 | البتات 0-1: ترتيب البايت: 0 = صغير، 1 = كبير |
4 | البتات 2-3: النظام الأساسي: 0 = 32-بت، 1 = 64-بت |
5-7 | محجوز |