Back to questions
Junior — Middle
82
Какие типы обобщенного программирования доступны в языке Go?
Answer from AI
sobes.tech AI
В языке Go обобщённое программирование реализовано через дженерики, которые появились начиная с версии 1.18. Основные типы обобщений в Go включают:
- Параметризованные типы (generic types): функции и типы могут принимать параметры типов, что позволяет писать универсальный код.
- Интерфейсы с ограничениями (type constraints): задают требования к типам параметров, например, чтобы тип поддерживал определённые методы или был из набора конкретных типов.
Пример обобщённой функции для слайса:
func IndexOf[T comparable](slice []T, val T) int {
for i, v := range slice {
if v == val {
return i
}
}
return -1
}
Здесь T — параметр типа, ограниченный интерфейсом comparable, что позволяет использовать оператор ==. Такая функция универсальна для любых сравнимых типов.
Таким образом, Go поддерживает обобщения через параметризацию типов и ограничения, что повышает гибкость и повторное использование кода.