Тип TypedData
Тип TypedData - общая основа для
Int8List, Uint8List, Float64List,
ByteData и остальных списков
из библиотеки dart:typed_data.
Сам тип не хранит элементы определённой ширины.
Он сообщает, где данные лежат в памяти:
свойство buffer - общий ByteBuffer,
offsetInBytes - смещение от начала буфера,
lengthInBytes - сколько байт занимает значение,
elementSizeInBytes - сколько байт
занимает один элемент.
Синтаксис
TypedData data = Uint8List(4);
ByteBuffer buffer = data.buffer;
int size = data.lengthInBytes;
Пример
Давайте посмотрим на список двухбайтовых чисел как на общие байтовые данные:
import 'dart:typed_data';
void main()
{
Int16List list = Int16List.fromList([1, 2, 3]);
TypedData data = list;
print(data.elementSizeInBytes);
print(data.lengthInBytes);
print(data.offsetInBytes);
}
Результат выполнения кода:
2
6
0
Пример
Давайте узнаем размер ByteData в байтах.
Один элемент этого типа занимает один байт:
import 'dart:typed_data';
void main()
{
ByteData raw = ByteData(8);
TypedData data = raw;
print(data.lengthInBytes);
print(data.elementSizeInBytes);
}
Результат выполнения кода:
8
1
Пример
Давайте получим буфер из списка байтов через общий тип:
import 'dart:typed_data';
void main()
{
Uint8List list = Uint8List.fromList([1, 2, 3, 4]);
TypedData data = list;
print(data.buffer.lengthInBytes);
}
Результат выполнения кода:
4
Смотрите также
-
тип
ByteBuffer,
который хранит общий кусок памяти -
тип
ByteData,
который читает байты как числа разной ширины -
тип
Uint8List,
который хранит список байтов -
тип
Int16List,
который хранит знаковые 16 бит