AnyMath 文档

序列化

提供Julia对象的序列化。

serialize(stream::IO, value)

以不透明格式将任意值写入流,以便可以通过 反序列化. 回读值将尽可能与原始值相同,但请注意 Ptr 值序列化为全零位模式(NULL).

一个8字节的标识头首先写入流。 为了避免写头,构造一个 序列化器 并用它作为第一个参数 序列化 相反。 请参阅 序列化。写作者.

数据格式可以在次要(1。X)Julia发布,但由prior1编写的文件。x版本将保持可读性。 这种情况的主要例外是当外部包中类型的定义发生变化时。 如果发生这种情况,可能需要在您的环境中指定受影响的包的显式兼容版本。 在包内重命名函数,甚至是私有函数,也会使现有文件不同步。 匿名函数需要特别注意:由于它们的名称是自动生成的,因此轻微的代码更改可能会导致它们被重命名。 应避免在用于长期存储的文件中序列化匿名函数。

在某些情况下,读写机器的字大小(32位或64位)必须匹配。 在较罕见的情况下,操作系统或体系结构也必须匹配,例如当使用包含依赖于平台的代码的包时。

serialize(filename::AbstractString, value)

打开一个文件并序列化给定的值。

兼容性

Julia1.1此方法自Julia1.1起可用。

deserialize(stream)

读取写入的值 序列化. 反序列化 假设从读取的二进制数据 溪涧 是正确的,并已被一个兼容的实现序列化 序列化. 反序列化 是为简单性和性能而设计的,因此不验证读取的数据。 格式错误的数据可能导致进程终止。 调用方必须确保从读取的数据的完整性和正确性 溪涧.

deserialize(filename::AbstractString)

打开文件并反序列化其内容。

兼容性

Julia1.1此方法自Julia1.1起可用。

Serialization.writeheader(s::AbstractSerializer)

将标识标头写入指定的序列化程序。 标头由8个字节组成,如下所示:

偏移量 资料描述

0

标签字节(0x37)

1-2

签名字节"JL"

3

协议版本

4

位0-1:endianness:0=小,1=大

4

位2-3:平台:0=32位,1=64位

5-7

预留