Spec-Zone.ru › Dart 2

dart:typed_data

Конструктор Uint32List.view

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

Создаёт Uint32List вид указанного участка в заданном буфере байтов.

Изменения в Uint32List будут видны в буфере байтов и наоборот. Если индекс offsetInBytes участка не указан, он по умолчанию равен нулю (первый байт в буфере байтов). Если длина не указана, вид простирается до конца буфера байтов.

offsetInBytes и length должны быть неотрицательными, и offsetInBytes + (length * bytesPerElement) должно быть меньше или равно длине buffer.

offsetInBytes должен быть кратным bytesPerElement.

Обратите внимание, что при создании вида из списка TypedData или байтовых данных, этот список или байтовые данные могут сами быть видом на более крупный буфер с TypedData.offsetInBytes, большим, чем ноль. Просто выполнение Uint32List.view(other.buffer, 0, count) может не указывать на те байты, которые вы предполагали. Вместо этого вам может потребоваться выполнить:

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

В качестве альтернативы, используйте Uint32List.sublistView, который включает этот вычисление:

Uint32List.sublistView(other, 0, count);

(Третий аргумент — конечный индекс, а не длина, поэтому, если вы начинаете с позиции, большей нуля, вам не нужно уменьшать счётчик соответствующим образом).

Реализация

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

© 2012 the Dart project authors
Licensed under the BSD 3-Clause "New" or "Revised" License.
https://api.dart.dev/stable/2.18.5/dart-typed_data/Uint32List/Uint32List.view.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API