Uint8ClampedList.view 构造函数

Uint8ClampedList.view(
  1. ByteBuffer buffer,
  2. [int offsetInBytes = 0,
  3. int? length]
)

创建一个指定区域在指定字节缓冲区中的Uint8ClampedList 视图

Uint8List 的更改将在字节缓冲区中可见,反之亦然。如果未指定区域的 offsetInBytes 索引,则默认为零(字节缓冲区中的第一个字节)。如果未提供长度,则视图扩展到字节缓冲区的末尾。

offsetInByteslength 必须为非负数,且 offsetInBytes + (length * bytesPerElement) 必须小于或等于 buffer 的长度。

注意,当从 TypedData 列表或字节数据创建视图时,该列表或字节数据本身可能是在具有 TypedData.offsetInBytes 大于零的大缓冲区上的视图。仅仅执行 Uint8ClampedList.view(other.buffer, 0, count) 可能不会指向你想要的目标字节。相反,你可能需要执行

Uint8ClampedList.view(other.buffer, other.offsetInBytes, count)

或者,使用 Uint8ClampedList.sublistView,它包含此计算

Uint8ClampedList.sublistView(other, 0, count);

(第三个参数是末尾索引而不是长度,所以如果你从大于零的位置开始,不需要相应地减少数量)。

实现

factory Uint8ClampedList.view(ByteBuffer buffer,
    [int offsetInBytes = 0, int? length]) {
  return buffer.asUint8ClampedList(offsetInBytes, length);
}