Что такое дженерики

«Что такое дженерики» — вопрос из категории Golang, который задают на 28% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Дженерики (generics) в Go позволяют писать универсальный код, работающий с разными типами данных без дублирования. Они появились в Go 1.18.

Пример:

func Sum[T int | float64](a, b T) T {
    return a + b
}

// Использование
sumInt := Sum(1, 2)        // 3
sumFloat := Sum(1.5, 2.5)  // 4.0

Особенности:

  • Используют параметризованные типы ([T TypeConstraint]).
  • Ограничения типов (any, comparable, интерфейсы или объединения через |).
  • Уменьшают дублирование кода, но могут усложнять читаемость.

Подходит для коллекций (map, slice) и алгоритмов (сортировка, фильтрация).