【发布时间】:2021-10-30 16:57:57
【问题描述】:
在 Python 和 JavaScript 中都有一个名为 pack 的函数
在 JavaScript 中:
struct.pack('<I', 5311)
在 Python 中
pack("<I", 5311)
将产生[0, 0, 20, 191] 或b'\x00\x00\x14\xbf'。
dart 中是否有等价的功能?
【问题讨论】:
-
对于不熟悉 JavaScript 中的
struct.pack或 Python 中的pack的人,如果您描述了您想要的内容,将会有所帮助。您的示例也令人困惑,因为十六进制的14和bf分别不是 242 和 115。 -
如果你只想写一个 32 位无符号整数作为 little-endian 字节序列,你可以使用
ByteData.setUint32。相关课程见dart:typed_data。 -
感谢您的注意,值 242 是错误的。我自己不熟悉
struct.pack并试图将 Python 代码转换为 dart。你能举例说明如何正确使用 ByteData.setUint32 吗?我似乎无法理解如何这样做ByteData(0000).setFloat32(4, 5311) -
非常感谢@jamesdlin 为我指明了正确的方向。
-
@GuyLuz 你能解释一下你的最终解决方案吗?我正在尝试在 dart 中转换 python
struct.pack(">ii", 1, 1)。