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