Генерация Кода На Языке Go

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

Язык программирования Go предоставляет мощные инструменты для генерации кода.

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

И тут на помощь приходит генерация кода, которая на первый взгляд достаточно сложна для небольших рутинных операций, но тем не менее является достаточно гибким инструментом.

Уже существует ряд готовых библиотек генерации кода, покрывающих базовые потребности в обобщениях.

Это «ссылка» стрингер и более полезный jsonums С ффджсон Мощный ген и даже позволяет добавить в Go некоторый функционал, в том числе добавить так недостающий многим аналог forEach для пользовательских типов.

Кроме того, gen довольно легко расширяется за счет собственных генераторов.

К сожалению, gen ограничивается генерацией кода методов для конкретных типов.

Собственно, я решил затронуть тему генерации кода не потому, что жизнь удалась, а потому, что столкнулся с небольшой проблемой, для которой не смог найти другого подходящего решения.

Задача такая, есть список констант:

   

type Color int const (

Теги: #Go #golang #генерация кода #программирование #Go
Вместе с данным постом часто просматривают: