в блоге go.dev подробно описали про range functions. Для тех, кто не совсем в теме - это свежее добавление (появилось в 1.23) и по сути позволят сделать свой тип/коллекцию “обходимым” посредством стандартного range.



https://go.dev/blog/range-functions



мистики в этом, на первый взгляд, есть определенное количество и она не вся пропадает даже посли понимания того, как именно это работает. Но причины понятны, и случаи когда такое надо тоже понятны. На мой взгляд, это, как и дженрики, фича в основном для авторов библиотек.