Что выведет код Middle Dart: типы и null-safety обновлено
Dart: ленивый map и порядок вывода
Вопрос
Что выведет программа? По строке на каждый вывод.
void main() {
final it = [1, 2, 3].map((x) {
print('map $x');
return x * 10;
});
print('создан');
print(it.first);
}
Попробуйте сами
Напишите, что выведет код: каждый вывод с новой строки.
Показать ответ и разбор
Коротко
Код выведет: создан, map 1, 10. map ленивый: при создании ничего не вызывается, поэтому сначала создан. first берёт только первый элемент, функция вызывается один раз для 1, и обход останавливается.
Что выведет
создан
map 1
10
Разбор
map ленивый: при создании ничего не вызывается, поэтому сначала создан. first берёт только первый элемент, функция вызывается один раз для 1, и обход останавливается. Вызовов для 2 и 3 нет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.