Serialization
Julia nesnelerinin serileştirilmesini sağlar.
Serialization.serialize
— Functionserialize(stream::IO, value)
Bir akışa, deserialize
ile geri okunabilecek opak bir formatta rastgele bir değer yazın. Geri okunan değer, mümkün olduğunca orijinaline benzer olacaktır, ancak Ptr
değerlerinin tüm sıfır bit desenleri (NULL
) olarak serileştirildiğini unutmayın.
Öncelikle akışa 8 baytlık bir tanımlayıcı başlık yazılır. Başlığı yazmaktan kaçınmak için bir Serializer
oluşturun ve bunu serialize
'a ilk argüman olarak kullanın. Ayrıca bkz. Serialization.writeheader
.
Veri formatı, küçük (1.x) Julia sürümlerinde değişebilir, ancak önceki 1.x sürümleriyle yazılan dosyalar okunabilir kalacaktır. Bunun ana istisnası, bir dış paketteki bir türün tanımının değişmesidir. Bu durumda, etkilenen paketin uyumlu bir sürümünü ortamınıza açıkça belirtmek gerekebilir. Paketler içindeki özel işlevlerin bile yeniden adlandırılması, mevcut dosyaların senkronizasyonunu bozabilir. Anonim işlevler özel bir dikkat gerektirir: çünkü adları otomatik olarak oluşturulur, küçük kod değişiklikleri onların yeniden adlandırılmasına neden olabilir. Uzun vadeli depolama için tasarlanmış dosyalarda anonim işlevlerin serileştirilmesinden kaçınılmalıdır.
Bazı durumlarda, okuma ve yazma makinelerinin kelime boyutu (32 veya 64 bit) eşleşmelidir. Daha nadir durumlarda, işletim sistemi veya mimari de eşleşmelidir; örneğin, platforma bağımlı kod içeren paketler kullanıldığında.
serialize(filename::AbstractString, value)
Bir dosya açın ve verilen değeri ona serileştirin.
Bu yöntem Julia 1.1 itibarıyla mevcuttur.
Serialization.deserialize
— Functiondeserialize(stream)
serialize
ile yazılmış bir değeri okuyun. deserialize
, stream
'den okunan ikili verinin doğru olduğunu ve serialize
ile uyumlu bir uygulama tarafından serileştirildiğini varsayar. deserialize
, basitlik ve performans için tasarlanmıştır, bu nedenle okunan veriyi doğrulamaz. Bozuk veriler işlem sonlanmasına neden olabilir. Çağrıcı, stream
'den okunan verinin bütünlüğünü ve doğruluğunu sağlamalıdır.
deserialize(filename::AbstractString)
Bir dosyayı açın ve içeriğini serileştirin.
Bu yöntem Julia 1.1 itibarıyla mevcuttur.
Serialization.writeheader
— FunctionSerialization.writeheader(s::AbstractSerializer)
Belirtilen serileştiriciye tanımlayıcı bir başlık yazın. Başlık, aşağıdaki gibi 8 bayttan oluşur:
Ofset | Açıklama |
---|---|
0 | etiket baytı (0x37) |
1-2 | imza baytları "JL" |
3 | protokol versiyonu |
4 | bit 0-1: sonlandırma sırası: 0 = küçük, 1 = büyük |
4 | bit 2-3: platform: 0 = 32-bit, 1 = 64-bit |
5-7 | ayrılmış |