Курс языка программирования Raku / Функциональное, конкурентное, реактивное и веб-программирование / Функциональное программирование / Итераторы / Протокол итератора

Тест — Протокол итератора

Что возвращает pull-one, когда у итератора больше нет значений, и как это проверить?

1IterationEnd, проверяется через =:=
0Nil, проверяется через .defined
0пустой список (), проверяется через ==
00, проверяется через =:=

Исчерпанный итератор возвращает объект-маркер IterationEnd. Поскольку это один общий объект, его проверяют по тождественности через =:= (проверка «тот же самый объект»), а не по значению и не по определённости. Цикл for пользуется ровно этой проверкой, чтобы понять, когда остановиться.

Навигация по курсу

Протокол итератора   |   Написание итератора