我需要使用 LIFO 堆栈容器进行推送和弹出操作,但 container
包中没有。它应该由每个程序员临时编写,还是有一种方法可以使用其他数据结构作为堆栈(如 Python 中的列表)?
最佳答案
Go 或标准库中没有内置堆栈类型。但是,您可以非常简单地将 Push 和 Pop 方法添加到 slice 中(与 Python 中现有的列表方法不同)。
type Stack []YourType
func (s *Stack) Push(v YourType) {
*s = append(*s, v)
}
func (s *Stack) Pop() YourType {
ret := (*s)[len(*s)-1]
*s = (*s)[0 : len(*s)-1]
return ret
}
非常简单
关于go - Go中的后进先出容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17435019/