for-in для коллекций
Обход каждого элемента без индекса
«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 — локальная установка не требуется.
Все уроки этого курса
- Классический цикл for
- Циклы while и do-while
- for-in для коллекций
- break, continue и метки