Конструктор generate
Конструктор generate класса List создает
новый список заданной длины. В первый параметр
мы передаем длину создаваемого списка, во второй -
функцию-генератор, которая принимает индекс элемента
и возвращает значение для этого элемента. Третий
необязательный параметр позволяет указать, нужно ли
создавать список фиксированной длины.
Если параметр growable равен false (значение
по умолчанию), создается список фиксированной длины,
который нельзя расширять. Если growable равен
true, список можно расширять.
Синтаксис
List.generate(int length, E generator(int index), {bool growable = false})
Пример
Давайте создадим список из 5 элементов,
каждый из которых равен своему индексу:
void main()
{
List<int> res = List.generate(5, (index) => index);
print(res);
}
Результат выполнения кода:
[0, 1, 2, 3, 4]
Пример
Давайте создадим список из 5 элементов,
каждый из которых равен квадрату своего индекса:
void main()
{
List<int> res = List.generate(5, (index) => index * index);
print(res);
}
Результат выполнения кода:
[0, 1, 4, 9, 16]
Пример
Давайте создадим список из 5 строк,
каждая из которых содержит свой индекс:
void main()
{
List<String> res = List.generate(5, (index) => 'item $index');
print(res);
}
Результат выполнения кода:
["item 0", "item 1", "item 2", "item 3", "item 4"]
Пример
Давайте создадим расширяемый список, используя
параметр growable:
void main()
{
List<int> res = List.generate(3, (index) => index + 1, growable: true);
res.add(4);
print(res);
}
Результат выполнения кода:
[1, 2, 3, 4]