В Dart методы List.of
и List.from
используются для создания новых списков на основе существующих коллекций. Вот объяснение их различий:
List.of
: методList.of
создает новый список с элементами существующей коллекции, например списка или набора. Он принимает один аргумент, который может быть итерируемым, и возвращает новый список, содержащий элементы в том же порядке, что и итерируемый объект.
Пример:
var existingList = [1, 2, 3];
var newList = List.of(existingList);
print(newList); // Output: [1, 2, 3]
List.from
: методList.from
создает новый список путем копирования элементов из существующей коллекции. Он принимает два аргумента: первый аргумент — это коллекция, из которой копируются элементы, а второй (необязательный) аргумент — это функция, которую можно использовать для преобразования каждого элемента в процессе копирования.
Пример:
var existingSet = {1, 2, 3};
var newList = List.from(existingSet);
print(newList); // Output: [1, 2, 3]
В приведенном выше примере метод List.from
создает новый список из существующего набора.
Дополнительные методы создания списков в Dart включают:
List.generate
: создает новый список с элементами, сгенерированными функцией.
Пример:
var newList = List.generate(5, (index) => index * 2);
print(newList); // Output: [0, 2, 4, 6, 8]
List.filled
: создает новый список указанного размера, заполненный заданным значением.
Пример:
var newList = List.filled(3, 'Hello');
print(newList); // Output: ['Hello', 'Hello', 'Hello']
List.unmodifying
: создает неизменяемое представление существующего списка, предотвращая его изменение.
Пример:
var existingList = [1, 2, 3];
var unmodifiableList = List.unmodifiable(existingList);
unmodifiableList.add(4); // This will throw an exception