Sobes.tech
Назад к вопросам
Middle+
2

Расскажи про стек, с чем работаешь?

Компании, где спрашивали
МВидеоМВидео

Ответ от нейросети

sobes.tech AI

В работе со стеком (stack) в программировании обычно подразумевается структура данных с принципом LIFO (Last In, First Out).

В Go стек можно реализовать с помощью срезов ([]T), где добавление элемента происходит через append, а удаление — через срез без последнего элемента.

Пример простого стека на Go:

type Stack []int

func (s *Stack) Push(v int) {
    *s = append(*s, v)
}

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

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