type Stack[T any] struct { items []T }. Push: s.items = append(s.items, v). Pop: проверяешь len, забираешь последний, обрезаешь слайс. Peek: возвращаешь последний без удаления. Len: return len(s.items). Для Pop и Peek при пустом стеке — возвращаешь (T zero value, false) или паникуешь. Вариант с ok: func (s *Stack[T]) Pop() (T, bool). Всё type-safe, никаких interface{} и type assertion. Можно добавить итератор через метод, возвращающий []T или callback.
Как реализовать generic stack?
Middle
214 просмотровAFK Offer AI
Как создать GitHub Release?