Ограничение длины в Dart
Метод take обрезает перебор после
заданного числа элементов. Дальнейшие шаги видят
уже укороченный поток, даже если исходных данных
было больше.
На списке чисел отберем четные, возьмем первые два и соберем результат:
final nums = [2, 4, 6, 8, 10, 12];
final part = nums
.where((n) => n % 2 == 0)
.take(2)
.toList();
print(part);
Метод take можно поставить и сразу после
списка, если нужны первые элементы
без предварительного отбора:
final nums = [30, 10, 40, 20, 50];
final head = nums
.take(3)
.map((n) => n ~/ 10)
.toList();
print(head);
Во втором примере map выполнится только
для трех первых чисел исходного списка. Ограничение
длины часто ставят перед тяжелым шагом, чтобы не
обрабатывать лишние элементы.
Дан список [1, 2, 3, 4, 5, 6].
Через цепочку возьмите первые четыре
числа, оставьте только нечетные и выведите список.
Для списка ["a", "bb", "ccc", "dddd"]
постройте цепочку с отбором строк длиннее одного
символа, затем ограничьте длину двумя элементами
и выведите их в верхнем регистре одним списком.