Dart List.of против List.from: понимание различий и использование

В Dart методы List.ofи List.fromиспользуются для создания новых списков на основе существующих коллекций. Вот объяснение их различий:

  1. List.of: метод List.ofсоздает новый список с элементами существующей коллекции, например списка или набора. Он принимает один аргумент, который может быть итерируемым, и возвращает новый список, содержащий элементы в том же порядке, что и итерируемый объект.

Пример:

var existingList = [1, 2, 3];
var newList = List.of(existingList);
print(newList); // Output: [1, 2, 3]
  1. List.from: метод List.fromсоздает новый список путем копирования элементов из существующей коллекции. Он принимает два аргумента: первый аргумент — это коллекция, из которой копируются элементы, а второй (необязательный) аргумент — это функция, которую можно использовать для преобразования каждого элемента в процессе копирования.

Пример:

var existingSet = {1, 2, 3};
var newList = List.from(existingSet);
print(newList); // Output: [1, 2, 3]

В приведенном выше примере метод List.fromсоздает новый список из существующего набора.

Дополнительные методы создания списков в Dart включают:

  1. List.generate: создает новый список с элементами, сгенерированными функцией.

Пример:

var newList = List.generate(5, (index) => index * 2);
print(newList); // Output: [0, 2, 4, 6, 8]
  1. List.filled: создает новый список указанного размера, заполненный заданным значением.

Пример:

var newList = List.filled(3, 'Hello');
print(newList); // Output: ['Hello', 'Hello', 'Hello']
  1. List.unmodifying: создает неизменяемое представление существующего списка, предотвращая его изменение.

Пример:

var existingList = [1, 2, 3];
var unmodifiableList = List.unmodifiable(existingList);
unmodifiableList.add(4); // This will throw an exception