unpack

New in version 2.00.8.

语法

unpack(format, buf)

参数

format 格式字符串,用于指定数据格式。指定方式参见附录。关于格式字符串的说明:

  • 格式字符之前可以带有整数表示重复计数。 例如,格式字符串 ‘4h’ 的含义与 ‘hhhh’ 完全相同。

  • 格式之间的空白字符会被忽略;但是计数及其格式字符中不可有空白字符。

  • 对于 ‘s’ 格式字符,计数会被解析为字节的长度,而不是像其他格式字符那样的重复计数;例如,’10s’ 表示一个 10 字节的字节串,而 ‘10c’ 表示 10 个字符。 若未给出计数,则默认值为1。返回结果的字节对象长度必须恰好等于指定的字节数量。 作为特殊情况,’0c’ 表示 0 个字符。

buf 二进制字节流,可以是 STRING 或 BLOB 类型。buf 中各元素的字节大小和类型必须匹配 format 所要求的大小和类型。

详情

根据 format 指定的格式,将 buf 解包成 DolphinDB 中的数据。返回一个元组,其元素为解包后的数据。

例子

$ res = pack("N",1);
$ res1 = unpack("N", res);
$ print(res1)
(1)


$ res = pack("3s i", `123, 3)
$ res1 = unpack("3s i",  res);
$ print(res1)
("123",3)

附录

格式和类型的对应关系见 1.1 格式字符与类型

默认情况下,C类型以本机格式和字节顺序表示,在必要时通过跳过填充字节进行正确对齐(根据 C 编译器使用的规则)。

格式字符串的第一个字符可用于指示打包数据的字节顺序,大小和对齐方式,见 1.2 首字符字节顺序,大小和对齐方式。 如果第一个字符不是其中之一,则按 ‘@’ 处理。

相关函数:pack