Sobes.tech
Back to questions
Junior — Middle
83

Можете объяснить механизм функционирования обобщённых типов в языке программирования?

Companies where asked
Miatel

Answer from AI

sobes.tech AI

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

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

Пример обобщённой функции в Go:

package main
import "fmt"

// Функция, которая возвращает первый элемент среза любого типа
func First[T any](slice []T) T {
    return slice[0]
}

func main() {
    ints := []int{1, 2, 3}
    strings := []string{"a", "b", "c"}

    fmt.Println(First(ints))    // Выведет 1
    fmt.Println(First(strings)) // Выведет "a"
}

Здесь T — параметр типа, который может быть любым типом (any — это ограничение, позволяющее любой тип). При вызове функции компилятор подставляет конкретный тип.

Таким образом, обобщённые типы повышают переиспользуемость кода и обеспечивают безопасность типов без потери производительности.