Как реализовать generic stack?

Middle
214 просмотров
AFK Offer AI

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.

Следующий вопрос

Как создать GitHub Release?