gpt4 book ai didi

bytearray - 在 Dart 中处理字节数组时,使用 Uint8List 比使用 List 有什么优势?

转载 作者:行者123 更新时间:2023-12-03 02:39:31 25 4
gpt4 key购买 nike

我正在编写一个 Dart 库,我经常在其中处理字节数组或字节字符串。由于 Dart 既没有字节类型也没有数组类型,我对所有字节数组都使用 List。

这是一个好的做法吗?我最近才发现 Uint8List 的存在在 dart:typed_data包裹。很明显,此类旨在通过字节数组的首选实现。

但它有任何直接的优势吗?

我可以想象它总是对新项目执行检查,以便用户可以确保列表中没有非字节值整数。但还有其他优势或差异吗?

还有一个名为 ByteArray 的类,但对于 List 来说,它似乎是一个非常低效的替代方案......

最佳答案

优点应该是 Uint8List 比普通 List 消耗更少的内存,因为从一开始就知道每个元素的大小都是一个字节。
Uint8List 也可以直接映射到底层优化的 Uint8List 类型(例如在 Javascript 中)。
列表切片的副本也更容易执行,因为所有字节在内存中都是连续布局的,因此可以在单个操作中将切片直接复制到另一个 Uint8List(或等效)类型。

但是,这个优势能否充分发挥,取决于 Dart 中 Uint8List 的实现有多好。

关于bytearray - 在 Dart 中处理字节数组时,使用 Uint8List 比使用 List<int> 有什么优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19897831/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com