首页 > 解决方案 > Dart:将 int 转换为 Uint8List

问题描述

我正在尝试为我通过套接字流式传输的有效负载添加前缀,到目前为止,我能够让它工作的唯一方法是:

Uint8List payload = getPayloadSomehow();
final lBytes = ByteData(4)..setUint32(0, payload.length);
final prefix = lBytes.buffer.asUint8List();
final prefixedPayload = []..addAll(prefix)..addAll(payload);

创建一个ByteData并用长度填充它,然后将缓冲区提取为一个Uint8List感觉非常迂回。但是我还没有找到一种更简洁的方法来进行转换和前缀。

如果有人能指出更好的解决方案,我将不胜感激,谢谢。

标签: arraysdart

解决方案


怎么样:

var payload = getPayloadSomehow();
var prefixed = Uint8List(payload.length + 4);
prefixed.buffer.asUint32List(0, 1)[0] = payload.length;
prefixed.setRange(4, prefixed.length, payload);

推荐阅读