Конструктор filled
Конструктор filled класса List создает
список заданной длины, все элементы которого
заполнены одним и тем же значением. Первым
параметром мы передаем длину создаваемого
списка, вторым - значение, которым будут
заполнены все элементы. Также существует
именованный параметр growable, который
определяет, будет ли список изменяемым
(по умолчанию false).
Обратите внимание на то, что если заполняемое значение является объектом, то все элементы списка будут ссылаться на один и тот же объект. Это важно учитывать при работе с изменяемыми объектами.
Синтаксис
List.filled(length, fill, {growable})
Пример
Давайте создадим список длиной 5, заполненный
числом 1:
void main()
{
List<int> res = List.filled(5, 1);
print(res);
}
Результат выполнения кода:
[1, 1, 1, 1, 1]
Пример
Давайте создадим список длиной 3, заполненный
строкой 'abcde':
void main()
{
List<String> res = List.filled(3, 'abcde');
print(res);
}
Результат выполнения кода:
[abcde, abcde, abcde]
Пример
Давайте создадим изменяемый список длиной 4,
заполненный числом 0, используя параметр
growable:
void main()
{
List<int> res = List.filled(4, 0, growable: true);
res.add(5);
print(res);
}
Результат выполнения кода:
[0, 0, 0, 0, 5]
Пример
Давайте попробуем изменить элемент списка,
созданного без параметра growable:
void main()
{
List<int> res = List.filled(3, 1);
res[0] = 2;
print(res);
}
Результат выполнения кода:
[2, 1, 1]
Как видите, изменение элементов по индексу доступно даже для неизменяемого по длине списка. Однако добавить новый элемент в такой список не получится.