我正在写一个Dart库,我经常处理字节数组或字节字符串.由于Dart没有字节类型也没有数组类型,我使用List来表示所有字节数组.
这是一个很好的做法吗?我最近才发现包装中存在的Uint8List情况dart:typed_data.很明显,这个类的目标是通过字节数组的实现.
但它有直接的优势吗?
我可以想象它总是对新项执行检查,以便用户可以确保列表中没有非字节值整数.但是还有其他优点或差异吗?
还有一个名为ByteArray的类,但它似乎是List的一个非常低效的替代方案......
优点应该是 Uint8List 比普通 List 消耗更少的内存,因为从一开始就知道每个元素的大小都是一个字节。Uint8List 也可以直接映射到底层优化的 Uint8List 类型(例如在 Javascript 中)。列表切片的副本也更容易执行,因为所有字节在内存中都是连续布局的,因此可以在单个操作中将切片直接复制到另一个 Uint8List(或等效)类型。
但是,这个优势能否充分发挥,取决于 Dart 中 Uint8List 的实现有多好。
| 归档时间: |
|
| 查看次数: |
1839 次 |
| 最近记录: |