2013-01-09 5 views
2

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

Например

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

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

+1

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

ответ

2

По 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)

+0

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

1

То, что Крис пишет в своем ответе, является правильным сегодня, но, начиная с этого момента, общий конструктор 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

+0

Это довольно круто - спасибо, что указали это :) –

Смежные вопросы