Я хочу создать буфер, который может быть добавлен.Как создать изменяемый массив дротиков
Например
var allInput = new Uint8List(1);
allInput.add(list)
Но это сообщил мне, что это не может быть изменить.
Я хочу создать буфер, который может быть добавлен.Как создать изменяемый массив дротиков
Например
var allInput = new Uint8List(1);
allInput.add(list)
Но это сообщил мне, что это не может быть изменить.
По API docs, Uint8List - это фиксированный список. Вы можете использовать такой код:
var allInput = new Uint8List(1);
allInput[0] = 123;
Если вы хотите расширяемый список, вы могли бы сделать что-то вроде:
var allInput = new List();
allInput.addAll(list);
или
var allInput = new List<int>();
allInput.addAll(list);
По существу, если вы предоставите спецификатор размера при создании списка, что делает его фиксированным. В противном случае он может расширяться (ref)
Спасибо за это, я действительно использовал 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
Это довольно круто - спасибо, что указали это :) –
Мне любопытно, почему вы используете Uint8List? Возможно, нам нужно будет сделать более понятным, что список, вероятно, является тем, чего хотят большинство людей. –