Конечное действие в Dart
Конечное действие - команда в конце цепочки, которой нужен конкретный ответ: список, число, один элемент. Именно она запускает реальный обход данных, описанных промежуточными шагами.
Один и тот же отбор можно завершить сбором списка или подсчетом длины:
final nums = [3, 8, 1, 12, 5];
final picked = nums.where((n) => n > 4).toList();
final amount = nums.where((n) => n > 4).length;
print(picked);
print(amount);
Метод toList материализует элементы, свойство
length считает их без сохранения всего набора
в память. Обе команды идут по одной и той же цепочке
отбора.
Другие частые конечные шаги - взять первый элемент или сложить числа:
final nums = [3, 8, 1, 12, 5];
final top = nums.where((n) => n > 4).first;
final total = nums
.where((n) => n > 4)
.fold(0, (sum, n) => sum + n);
print(top);
print(total);
Свойство first останавливает обход, как только
найден подходящий элемент. Метод fold проходит
все отобранные значения и накапливает итог.
Дан список [10, 2, 7, 15, 4].
Через where оставьте числа не
меньше семи. Выведите список отобранных значений
и их количество двумя конечными командами.
Для списка [1, 9, 3, 6, 11]
постройте цепочку с отбором больше пяти.
Выведите первый подходящий элемент и сумму всех
подходящих.