РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
223 of 723 menu

Конструктор 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]

Смотрите также

  • конструктор filled,
    который создает список с одинаковыми значениями
  • метод from,
    который создает список из другого списка
  • метод of,
    который создает список из переданных элементов
  • конструктор empty,
    который создает пустой список
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить