#dart
Вопрос:
Я пишу программу, которая использует промежуточные примечания. Каждая песня может быть запрограммирована для воспроизведения в зависимости от бита 0 или 1 в массиве фиксированного размера из 128 бит.
В Dart кажется, что можно создавать только функции, которые ожидают списки динамического размера:
void something(List<bool> midiNotes)
таким образом, пользователь может забыть установить 128 бит и просто передать пустой список или список только с одним элементом.
Комментарии:
1. В Dart есть списки фиксированного размера, но вы не можете требовать заданную длину в качестве типа в Dart. Если важно установить определенное количество битов, я предложу вам создать свой собственный тип, который представляет 128 бит узлов. Затем пользователю вашей библиотеки необходимо вызвать ваш конструктор для создания этого объекта, который затем может потребовать от пользователя указать биты.
Ответ №1:
Я помещу эти две ссылки в качестве ссылки
https://api.dart.dev/stable/2.13.3/dart-core/List/List.html
https://api.dart.dev/stable/2.13.4/dart-core/List/List.filled.html
В вашем случае я бы рекомендовал
const List<bool> myList = [/*...*/];
// just use const
Однако, если это не сработает, вы можете использовать это.
конструктор списка выглядит следующим образом
List<E>([int? length])
Если вы скажете что-то вроде
List<bool> fixedLengthList = List<bool>(10)
Тогда все, что изменит List
длину, выдаст ошибку.
Если вы хотите что — то вроде
List<bool> fixedLengthList = [true, true, true];
затем используйте
List<bool> fixedLengthList = List<bool>.filled(3, true);
/// you can add growable: false if you want but it is useless