Spec-Zone.ru › Julia 1.8

Сериализация

Serialization.serializeФункция

serialize(stream::IO, value)

Записывает произвольное значение в поток в непрозрачном формате, так что его можно будет прочитать обратно с помощью deserialize. Прочитанное значение будет максимально идентично исходному, но обратите внимание, что Ptr значения сериализуются как все нулевые битовые шаблоны (NULL).

Сначала в поток записывается 8-байтовый заголовок. Чтобы избежать записи заголовка, создайте Serializer и используйте его в качестве первого аргумента для serialize вместо этого. См. также Serialization.writeheader.

Формат данных может меняться в незначительных (1.x) выпусках Julia, но файлы, записанные предыдущими версиями 1.x, останутся читаемыми. Основное исключение из этого правила — когда определение типа в внешнем пакете изменяется. В таком случае может потребоваться указать явную совместимую версию затронутого пакета в вашей среде. Переименование функций, даже приватных, внутри пакетов также может привести к несовместимости существующих файлов. Анонимные функции требуют особого внимания: поскольку их имена генерируются автоматически, незначительные изменения кода могут привести к их переименованию. Сериализацию анонимных функций следует избегать в файлах, предназначенных для длительного хранения.

В некоторых случаях разрядность (32 или 64 бита) машин чтения и записи должна совпадать. В редких случаях также должно совпадать ОС или архитектура, например, при использовании пакетов, содержащих платформозависимый код.

serialize(filename::AbstractString, value)

Открывает файл и сериализует заданное значение в него.

Этот метод доступен начиная с Julia 1.1.

Serialization.deserializeФункция

deserialize(stream)

Читает значение, записанное функцией serialize. deserialize предполагает, что двоичные данные, считанные из stream , корректны и были сериализованы совместимой реализацией serialize. deserialize разработана для простоты и производительности, и поэтому не проверяет считанные данные. Некорректные данные могут привести к завершению процесса. Вызывающая сторона должна гарантировать целостность и правильность данных, считанных из stream.

deserialize(filename::AbstractString)

Открывает файл и десериализует его содержимое.

Этот метод доступен начиная с Julia 1.1.

Serialization.writeheaderФункция

Serialization.writeheader(s::AbstractSerializer)

Записывает идентифицирующий заголовок в указанный сериализатор. Заголовок состоит из 8 байт следующим образом:

Смещение Описание
0 байт тега (0x37)
1-2 байты сигнатуры "JL"
3 версия протокола
4 биты 0-1: порядок байтов: 0 = little, 1 = big
4 биты 2-3: платформа: 0 = 32-битная, 1 = 64-битная
5-7 зарезервировано

© 2009–2022 Jeff Bezanson, Stefan Karpinski, Viral B. Shah, and other contributors
Licensed under the MIT License.
https://docs.julialang.org/en/v1.8/stdlib/Serialization/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API