Dart Academy · Урок

for-in для коллекций

Обход каждого элемента без индекса

Урок 3 из 413 шагов

«for-in для коллекций» — бесплатный урок Dart Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Dart Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Dart Academy содержит 4 уроков всего.

Без индекса

Часто вам нужен каждый элемент, а не его позиция. Цикл for-in передаёт элементы по одному, и вам не нужно управлять счётчиком. ✨

Структура for-in

Напишите for, имя переменной, ключевое слово in, а затем коллекцию. На каждом проходе переменная связывается со следующим элементом.

for (var item in items) {
  print(item);
}

Цикл по списку

Направьте for-in на List, и он посетит каждый элемент по порядку, от начала до конца, без необходимости работать с length или скобками.

var fruits = ['apple', 'pear'];
for (var f in fruits) {
  print(f);
}

Проще, чем индексация

По сравнению с классическим циклом for, for-in устраняет счётчик, проверку длины и обращение к элементу в скобках. Меньше кода — меньше ошибок.

for (var f in fruits) {
  print(f);
}

Типизированная переменная цикла

Для ясности вместо var можно указать тип. Здесь каждый элемент явно имеет тип String, пока цикл проходит по списку.

for (String name in names) {
  print(name);
}

Цикл по множеству

Set также работает с for-in. Вы получите каждое уникальное значение один раз, хотя порядок, в отличие от списка, не гарантируется.

var ids = {1, 2, 3};
for (var id in ids) {
  print(id);
}

Любая Iterable

for-in работает с любой Iterable, а не только со списками и множествами. Сюда входят диапазоны, ключи отображений и результаты map или where.

for (var k in scores.keys) {
  print(k);
}

Цикл по записям отображения

Чтобы пройти по Map, перебирайте его записи. Каждая запись предоставляет ключ и значение, которые можно прочитать вместе за один проход.

for (var e in scores.entries) {
  print('${e.key}: ${e.value}');
}

Только чтение по привычке

Считайте переменную цикла копией каждого значения. Повторное присваивание ей не изменяет исходный элемент коллекции.

for (var n in nums) {
  n = n * 2; // does not change nums
}

Не изменяйте коллекцию во время цикла

Добавление или удаление элементов коллекции во время for-in вызывает ошибку. Вместо этого создайте новый список или перебирайте копию.

for (var x in list) {
  // list.add(x); // throws!
}

Альтернатива forEach

Метод forEach выполняет ту же задачу с помощью функции обратного вызова. for-in обычно понятнее и поддерживает break и continue.

fruits.forEach((f) => print(f));

Быстрая проверка

Вы хотите вывести каждое значение в List, не управляя индексом. Какой вариант будет самым понятным?

Повторение

Вы изучили цикл for-in: он посещает каждый элемент любой Iterable без счётчика. Перебирайте списки, множества и записи отображений понятным способом. 🎯

Можно начать бесплатно

Изучай Dart с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «for-in для коллекций» бесплатный?

Да — полный текст урока «for-in для коллекций» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Dart Academy, подпишись на CoddyKit PRO. Курс Dart Academy содержит 4 уроков всего.

Чему я научусь в уроке «for-in для коллекций»?

Обход каждого элемента без индекса Ты практикуешь Dart Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Dart Academy?

Предыдущий опыт не требуется. Dart Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «for-in для коллекций»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Dart Academy?

Да. Каждый урок Dart Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Классический цикл for
  2. Циклы while и do-while
  3. for-in для коллекций
  4. break, continue и метки
← Назад к Dart Academy