为什么对.reversed实例的Uint8List调用不以相反的字节顺序返回Uint8List的实例。是否有什么逻辑上的原因不能以相反的字节顺序返回一个Uint8List?
Uint8List uint8List = Uint8List(20); //20 byte array
Uint8List reversed = uint8List.reversed; //error not returning Uint8List发布于 2022-05-25 09:57:32
因为reversed属性是从Uint8List的超类List继承的(从技术上讲是从Iterable继承的,后者是List的超类)。
因为reversed是Iterable的一部分,所以它返回Iterable而不是Uint8List。当然,您可以简单地将其转换为列表。
Uint8List reverseUint8List(Uint8List list) {
return Uint8List.fromList(list.reversed.toList());
}长话短说,这是为了防止在每个Iterable的实现中重复99%的Iterable代码,虽然它对输出没有意义(反向列表不能突然变成队列/集/任何东西),但在实现上是有意义的,因为这些数据类型在这方面都是相似的。
发布于 2022-05-25 09:56:11
你必须用这个:
uint8List.reversed.toList()因为reversed返回一个Iterable。
https://stackoverflow.com/questions/72375460
复制相似问题