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