Dart – универсальный язык программирования, предлагающий мощные инструменты для работы с коллекциями, такими как списки, наборы и карты. Сопоставление этих коллекций и манипулирование ими является обычной задачей во многих приложениях. В этой статье мы рассмотрим несколько методов, которые можно использовать для достижения этой цели в Dart, а также примеры кода для каждого подхода.
Метод 1: использование метода map()
Метод map()применяет заданную функцию к каждому элементу коллекции и возвращает новую коллекцию с преобразованными значениями. Вот пример:
List<int> numbers = [1, 2, 3, 4, 5];
List<int> squaredNumbers = numbers.map((n) => n * n).toList();
print(squaredNumbers); // Output: [1, 4, 9, 16, 25]
Метод 2: понимание списка
Dart поддерживает понимание списка, которое обеспечивает краткий способ создания нового списка путем преобразования элементов существующего списка. Вот пример:
List<int> numbers = [1, 2, 3, 4, 5];
List<int> squaredNumbers = [for (var n in numbers) n * n];
print(squaredNumbers); // Output: [1, 4, 9, 16, 25]
Метод 3: использование forEach()
Метод forEach()позволяет перебирать элементы коллекции и выполнять действие над каждым элементом. Хотя он не возвращает новую коллекцию, вы можете использовать его для изменения существующей коллекции. Вот пример:
List<int> numbers = [1, 2, 3, 4, 5];
numbers.forEach((n) => print(n * n)); // Output: 1 4 9 16 25
Метод 4: преобразование списка в набор
Если вы хотите преобразовать список в набор, вы можете использовать метод toSet(). Этот метод создает новый набор с уникальными элементами исходного списка. Вот пример:
List<int> numbers = [1, 2, 2, 3, 3, 4, 5];
Set<int> uniqueNumbers = numbers.toSet();
print(uniqueNumbers); // Output: {1, 2, 3, 4, 5}
Метод 5: изменение карты с помощью map()
Чтобы изменить значения карты, вы можете использовать метод map()в сочетании с entriesсвойство карты. Вот пример:
Map<String, int> prices = {'apple': 1, 'banana': 2, 'orange': 3};
Map<String, double> discountedPrices = prices.map((key, value) =>
MapEntry(key, value * 0.9)); // Applying a 10% discount
print(discountedPrices); // Output: {apple: 0.9, banana: 1.8, orange: 2.7}
Dart предоставляет несколько методов для сопоставления коллекций и управления ими, что позволяет эффективно преобразовывать и изменять данные. Используя такие методы, как map(), генераторы списков, forEach()и другие операции, связанные с коллекциями, вы можете писать выразительный и лаконичный код. Понимание этих методов позволит вам эффективно работать с коллекциями в ваших проектах Dart.