Sobes.tech
Back to questions
Middle+
1

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

Companies where asked
МВидеоМВидео

Answer from AI

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 часто применяю срезы как стек, так как это эффективно и просто.