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

Начиная с версии Go 1.18 у нас наконец появилась сила дженериков. На этой неделе, когда я просматривал исходный код Golang, я нашел пример того, как создавать структуры с помощью дженериков.

В этом посте я покажу вам, как это сделать.

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

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

Имея в виду эти спецификации, давайте создадим новый пакет с именем cache.

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

Хороший! Теперь мы можем создать нашу частную и общую структуру для хранения данных.

Чтобы манипулировать данными, мы реализуем два метода: Set и Get.

Теперь давайте добавим общую функцию для создания и возврата указателя на новый кеш.

ХОРОШИЙ!!!

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

Оставляйте свои вопросы в комментариях, и я отвечу как можно скорее.

Спасибо за прочтение!