Sobes.tech
Senior
44

Ինչպե՞ս դարձնել տվյալների կառուցվածքը ընդհանուր (աշխատող ցանկացած արժեքի տիպի հետ) Go-ում։

Ընկերությունները, որտեղ հարցրել են
Cloud.ru

Պատասխան AI-ից

sobes.tech AI

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

Для создания generic-структуры нужно определить тип с параметром типа, например:

type Stack[T any] struct {
    elements []T
}

func (s *Stack[T]) Push(element T) {
    s.elements = append(s.elements, element)
}

func (s *Stack[T]) Pop() (T, bool) {
    if len(s.elements) == 0 {
        var zero T
        return zero, false
    }
    index := len(s.elements) - 1
    elem := s.elements[index]
    s.elements = s.elements[:index]
    return elem, true
}

Здесь T — параметр типа, any — ограничение, означающее любой тип. Такая структура Stack может работать с любыми типами данных, например Stack[int] или Stack[string].

Таким образом, generics в Go позволяют писать универсальные структуры и функции, параметризованные типами.