Go does not provide built-in Stack or Queue types; you implement them using slices with specific methods. Use append and len to manage the slice, treating the end as the top for a stack and the start as the front for a queue.
// Stack (LIFO)
type Stack struct { items []int }
func (s *Stack) Push(v int) { s.items = append(s.items, v) }
func (s *Stack) Pop() int { v := s.items[len(s.items)-1]; s.items = s.items[:len(s.items)-1]; return v }
// Queue (FIFO)
type Queue struct { items []int }
func (q *Queue) Enqueue(v int) { q.items = append(q.items, v) }
func (q *Queue) Dequeue() int { v := q.items[0]; q.items = q.items[1:]; return v }