[#] Рефлексивное метапрограммирование на Go: цикл for each средствами пакета reflect
habrabot(difrex,1) — All
2016-07-25 12:00:03


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



Конечно в Go нельзя писать обобщенные программы, например в стиле C++ templates, которые бы практически не влияли на затраты процессорного времени. Такого механизма в языке нет и, вполне возможно, что не предвидится.



С другой стороны, язык представляет довольно мощный встроенный пакет `reflect`, которой позволяет производить рефлексию как объектов, так и функций. Если не ставить быстродействие во главу угла, то с помощью этого пакета можно достигать интересных и гибких решений.



В этой статье я покажу как реализовать `for each` в виде типонезависимой рефлексивной функции.


[Читать дальше →][1]

[1]: https://habrahabr.ru/post/306304/?utm_source=habrahabr&utm_medium=rss&utm_campaign=feed_posts#habracut