序列化
提供 Julia 物件的序列化。
Serialization.serialize
— 函式serialize(stream::IO, value)
以不透明格式將任意值寫入串流,以便 deserialize
可以讀回。讀回值將與原始值盡可能相同,但請注意,Ptr
值會序列化為全零位元模式 (NULL
)。
8 位元組識別標頭會先寫入串流。若要避免寫入標頭,請建構一個 Serializer
,並將其用作 serialize
的第一個引數。另請參閱 Serialization.writeheader
。
資料格式可能會在 Julia 的次要版本 (1.x) 中變更,但先前 1.x 版本所寫入的檔案仍可讀取。主要的例外情況是外部套件中類型的定義變更時。如果發生這種情況,可能需要在您的環境中指定受影響套件的明確相容版本。重新命名套件中的函式,甚至是私有函式,也可能導致現有檔案不同步。匿名函式需要特別注意:由於其名稱是自動產生的,因此次要的程式碼變更可能會導致它們被重新命名。在打算長期儲存的檔案中應避免序列化匿名函式。
在某些情況下,讀寫機器必須匹配字元大小 (32 或 64 位元)。在更罕見的情況下,作業系統或架構也必須匹配,例如在使用包含與平台相關程式碼的套件時。
serialize(filename::AbstractString, value)
開啟檔案並將給定的值序列化到其中。
此方法自 Julia 1.1 起可用。
Serialization.deserialize
— 函式deserialize(filename::AbstractString)
開啟檔案並將其內容反序列化。
此方法自 Julia 1.1 起可用。
Serialization.writeheader
— 函式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 | 保留 |