Int32List.view 构造函数

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

创建一个指定区域在 buffer 中的 Int32List 视图

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

offsetInByteslength 必须是非负数,且 offsetInBytes + (length * bytesPerElement) 必须小于或等于缓冲区的长度。

offsetInBytes 必须是 bytesPerElement 的倍数。

请注意,当从 TypedData 列表或字节数据创建视图时,该列表或字节数据本身可能是一个在较大缓冲区上的视图,其 TypedData.offsetInBytes大于零。仅仅做 Int32List.view(other.buffer, 0, count) 可能不会指向你想要的字节数据。相反,你可能需要做

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

或者,使用 Int32List.sublistView,该函数包含这个计算

Int32List.sublistView(other, 0, count);

(第三个参数是一个结束索引而不是长度,所以如果你从大于零的位置开始,无需相应减少计数)。

实现

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