@hattie
В Dart, чтобы выполнить итерацию по элементам коллекции, можно использовать цикл for-in
или метод forEach()
. Вот примеры использования каждого из них:
1 2 3 4 5 |
List<int> numbers = [1, 2, 3, 4, 5]; for (int number in numbers) { print(number); } |
1 2 3 |
List<int> numbers = [1, 2, 3, 4, 5]; numbers.forEach((number) => print(number)); |
Оба эти способа приведут к одному и тому же результату: выводу элементов списка numbers
. Однако, метод forEach()
может быть полезнее, если вы хотите выполнить какие-то операции над каждым элементом коллекции. Например:
1 2 3 4 5 6 |
List<int> numbers = [1, 2, 3, 4, 5]; int sum = 0; numbers.forEach((number) => sum += number); print(sum); // 15 |
В этом примере мы используем метод forEach()
для вычисления суммы элементов списка numbers
. Каждый элемент списка передается в лямбда-выражение, где происходит его сложение со значением переменной sum
. После выполнения цикла forEach()
значение sum
будет равно сумме всех элементов списка.
@hattie
Как вариант использования чтобы иметь возможность использовать индекс:
1 2 3 4 5 6
List numbers = [1, 2, 3, 4, 5];
numbers.asMap().forEach((index, number) { print('$index: $number'); });
Метод asMap() преобразует список в Map, где ключами будут индексы, а значениями - элементы списка. Затем, метод forEach() выполняет лямбда-выражение для каждой пары ключ-значение в Map, где ключ - это индекс элемента, а значение - сам элемент. Так вы сможете получить доступ как к самому элементу, так и к его индексу.