|
Начиная с версии 1.23, в Go добавлена поддержка итераторов, что позволяет использовать range практически с чем угодно! |
|
![]()
|
|
|
|
|
Вернёмся к типу |
|
|
|
|
|
|
All возвращает итератор, который в Go является функцией с особой сигнатурой. |
|
|
Функция-итератор принимает другую функцию в качестве
параметра, по соглашению называемую |
|
|
Итерация не требует базовой структуры данных
и даже не обязана быть конечной! Вот функция,
возвращающая итератор по числам Фибоначчи: она
продолжает работать, пока |
|
|
|
|
|
|
Поскольку |
|
|
В пакетах вроде slices
есть много полезных функций для работы с итераторами.
Например, |
|
|
|
|
Когда цикл достигает |
|
|
Далее: Ошибки.