Мой вопрос о способах построения растущего многомерного списка (массива) в Dart - PullRequest
0 голосов
/ 09 мая 2019

Есть ли способ построить растущие многомерные списки дротиков? Единственным способом, который я нашел, было использование временных списков, как показано ниже:

void main() {
  List<List<int>> list = [];
  List<int> listTemp = [];

  for (int i = 0; i < 4; i++) {
    for (int j = 0; j < 4; j++) {
      listTemp.add(i * j);
    }
    list.add(listTemp.toList());
    listTemp.clear();
  }
  print(list);
}

Результат: [[0, 0, 0, 0], [0, 1, 2, 3], [0, 2, 4, 6], [0, 3, 6, 9]]

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Вы можете создать список напрямую, используя List.generate или новые литералы потока управления в Dart 2.3

var list = List.generate(4, (i) => List.generate(4, (j) => i * j));

или

var list = [for (int i = 0; i < 4; i++) [for (int j = 0; j < 4; j++) i * j]];

Полученные списки можно наращивать, если вам нужно добавить больше элементов в существующие подсписки или добавить дополнительные подсписки.

0 голосов
/ 09 мая 2019

Несколько более простая версия (не нужно создавать временный список, а затем очищать его):

void main() {
    List<List<int>> list = [];
    for (int i = 0; i < 4; i++) {
        List<int> innerList = [];
        for (int j = 0; j < 4; j++) {
            innerList .add(i * j);
        }
        list.add(innerList );
    }
    print(list);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...