ByteData.view 构造函数
- ByteBuffer buffer,
- [int offsetInBytes = 0,
- int? length]
创建一个指定的 buffer
区域的 ByteData 视图。
在 ByteData 中的更改将在字节数组缓冲区中可见,反之亦然。如果未指定区域中的 offsetInBytes
索引,则默认为零(字节数组的第一个字节)。如果未提供长度,视图将扩展到字节数组缓冲区的末尾。
offsetInBytes
和 length
必须为非负值,并且 offsetInBytes
+ length
必须小于或等于 buffer
的长度。
请注意,当从一个 TypedData 列表或字节数据中创建视图时,该列表或字节数据本身可能是一个具有大于零的 TypedData.offsetInBytes 的大缓冲区的视图。仅执行 ByteData.view(other.buffer, 0, count)
可能不会指向你打算的字节。相反,你可能需要这样做
ByteData.view(other.buffer, other.offsetInBytes, count)
或者,使用 ByteData.sublistView,它包含此计算
ByteData.sublistView(other, 0, count);
(第三个参数是一个结束索引而不是长度,因此如果你从大于零的位置开始,你就无需相应地减少计数)。
实现
factory ByteData.view(ByteBuffer buffer,
[int offsetInBytes = 0, int? length]) {
return buffer.asByteData(offsetInBytes, length);
}