go - 有队列实现吗?

标签 go queue fifo

任何人都可以为简单快速的 FIF/队列推荐 Go 容器,Go 有 3 个不同的容器:heaplistvector。哪个更适合实现队列?

最佳答案

事实上,如果你想要的是一个基本且易于使用的 fifo 队列,slice 提供了你所需要的一切。

queue := make([]int, 0)
// Push to the queue
queue = append(queue, 1)
// Top (just get next element, don't remove it)
x = queue[0]
// Discard top element
queue = queue[1:]
// Is empty ?
if len(queue) == 0 {
    fmt.Println("Queue is empty !")
}

当然,我们假设我们可以信任附加和 slice 的内部实现,从而避免无用的调整大小和重新分配。对于基本用法,这完全足够了。

关于go - 有队列实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2818852/

相关文章:

scheduling - 如何计算平均周转时间 - 循环法和先进先出调度?

stream - 写入后读取 *standard-input* Common Lisp

python - 让 readline 在 FIFO 上阻塞

ajax - 当我使用 POSTMAN 在 golang api 上执行 POST 请求时,我成功地收到了 jwt token 作为 cookie,但是当我从浏览器执行此操作时,我没有收到任何 cookie

python - 如何从 Python 调用 Go 函数

concurrency - 缓冲 channel 关闭 TRUE?

queue - UML事件图中的队列演示

performance - 现实生活中的人队列数据结构

websocket - 将 go websocket 库更新到最新版本

java - 生产者消费者阻塞队列