Назад к вопросам
Junior — Middle
78
Какие методы и инструменты ты знаешь для реализации обобщенного программирования в своих проектах?
Компании, где спрашивали
Digital Spirit
Ответ от нейросети
sobes.tech AI
В Go для реализации обобщённого программирования используются дженерики, которые появились начиная с версии Go 1.18.
Основные инструменты и методы:
- Параметризованные типы (generics) — позволяют писать функции, структуры и методы, которые работают с разными типами данных, не дублируя код.
- Интерфейсы с ограничениями (constraints) — задают требования к типам, которые могут использоваться в обобщениях.
Пример функции с дженериками:
package main
import "fmt"
func SumIntsOrFloats[T int | float64](slice []T) T {
var sum T
for _, v := range slice {
sum += v
}
return sum
}
func main() {
ints := []int{1, 2, 3}
floats := []float64{1.1, 2.2, 3.3}
fmt.Println(SumIntsOrFloats(ints)) // 6
fmt.Println(SumIntsOrFloats(floats)) // 6.6
}
До появления дженериков часто использовали интерфейс{} и приведение типов, но это менее безопасно и менее эффективно.