Курс Raku / Функційне, конкурентне, реактивне та веб-програмування / Функційне програмування / Ітератори / Протокол ітератора
Тест — Протокол ітератора
Коли в ітератора більше немає значень, що повертає
pull-one і як це перевіряють?
| 1 | IterationEnd, перевіряють через =:= |
| 0 | Nil, перевіряють через .defined |
| 0 | порожній список (), перевіряють через == |
| 0 | 0, перевіряють через =:= |
Вичерпаний ітератор повертає вартовий об’єкт
IterationEnd. Оскільки це єдиний спільний об’єкт, його
перевіряють за ідентичністю через =:= (перевірка на той
самий об’єкт), а не за значенням чи означеністю. Цикл
for користується рівно цією перевіркою, щоб знати, коли
зупинитися.