0

我想使用BlobColumnmoor 包来存储整数列表和双精度列表。我保存整数列表没有问题,因为 Uint8List 中的 blob 类型。但是当我存储双重列表时,我收到了这个错误:

error: The argument type 'List<double>' can't be assigned to the parameter type 'Uint8List'.

我找不到任何有关在 blob 列中为 moor 包保存任何对象列表的文档或示例。

任何帮助,将不胜感激。

4

1 回答 1

0

最后我要解决我的问题并写下这两个助手并编写这两个方法来转换数据以在数据库的 BlobColumn 中插入和读取

  List<num> convertUint8ListToDoubleList(Uint8List uint8list) {
    var bdata = ByteData.view(uint8list.buffer);
    return List.generate(
        (uint8list.length / 8).round(), (index) => bdata.getFloat64(index * 8));
  }

  Uint8List convertDoubleListToUint8List(List<num> doubleList) {
    var uint8List = new Uint8List(8 * doubleList.length);
    var bdata = new ByteData.view(uint8List.buffer);
    for (int i = 0; i < doubleList.length; i++) {
      bdata.setFloat64(i * 8, doubleList[i]);
    }
    return uint8List;
  }

于 2021-03-11T23:21:30.530 回答