Serialization
Serialization.serialize ── 関数
serialize(stream::IO, value)
deserialize で読み戻せる不透明なフォーマットを使って、任意の値をストリームに書き込みます。読み戻された値は元の値と可能な限り同一となります。一般に、読み込みと書き込みで使われる Julia のバージョンもしくはシステムイメージが異なるとデシリアライズ処理は失敗します。Ptr は全てゼロのビットパターン (NULL) としてシリアライズされます。
ストリームには 8 バイトの識別ヘッダーが最初に書き込まれます。ヘッダーを書き込まないようにするには、Serializer を構築してから serialize の第一引数にそれを渡してください。writeheader にも情報があります。
serialize(filename::AbstractString, value)
ファイルを開いて与えられた値をそこにシリアライズします。
このメソッドは Julia 1.1 以降でサポートされます。
Serialization.deserialize ── 関数
deserialize(stream)
serialize が書き込んだ値を読み込みます。deserialize は stream からのバイナリデータが正しく、serialize と互換性のある実装でシリアライズされたことを仮定します。単純さと性能を目標として設計されており、読み込まれるデータの確認は行われません。不正なデータを読むとプロセスが終了する可能性があります。stream からのデータが完全で正しいことを保証するのは呼び出し側の責任です。
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 | 予約領域 |