Как создать модифицируемый массив дротиков

Я хочу создать буфер, который может быть добавлен.

Например

  var allInput = new Uint8List(1);
  allInput.add(list)

Но мне сообщили, что это невозможно изменить.

2
nl ja de
Мне любопытно, почему вы используете Uint8List? Возможно, нам нужно будет сделать более понятным, что список, вероятно, является тем, чего хотят большинство людей.
добавлено автор Seth Ladd, источник

2 ответы

В документах API Uint8List является фиксированным списком. Вы можете использовать код, например:

var allInput = new Uint8List(1);
allInput[0] = 123;

Если вы хотите получить растущий список, вы можете сделать что-то вроде:

var allInput = new List();
allInput.addAll(list);

или

var allInput = new List();
allInput.addAll(list);

По сути, если вы создаете спецификатор размера при создании списка, это делает его фиксированным. В противном случае он расширяется ( ref )

2
добавлено
Спасибо за это, действительно, я использовал Uint8List (1) для высокой производительности и низкой памяти.
добавлено автор lygstate, источник

То, что Крис пишет в своем ответе, является правильным сегодня, но, начиная с самого начала, общий конструктор List не будет фиксированной длиной, когда задан аргумент длины. После этого размер списка будет изменяться. Также будет несколько дополнительных именованных конструкторов для List :

factory List.fixedLength(int length, {E fill: null})
factory List.filled(int length, E fill)

они помогут создать списки фиксированной длины и создать списки с предварительно заполненными значениями.

Подробные сведения об изменениях границ кровотечения в List см. В:

http://api.dartlang.org/docs/bleeding_edge/dart_core/List.html

1
добавлено
Это довольно круто - спасибо за указание на это :)
добавлено автор Chris Buckett, источник
Dart & Flutter по-русски
Dart & Flutter по-русски
1 115 участник(ов)

Чат русскоязычного сообщества, посвященный языку Dart и всем что вокруг (Flutter, AngularDart ect) Правила и ответы на частые вопросы: https://github.com/rudart/community