Goでキューを実装するのには特別なデータ構造は必要がない。ただのスライスを使って、キューに加えるにはappend、キューから取り出すにはスライシングを使えば十分だ。キューが空かどうかはlenが0かどうかを調べれば良い。
// int型のキューを作成
q := make([]int, 0)
// キューに1, 2, 3を追加
q = append(q, 1)
q = append(q, 2)
q = append(q, 3)
// 最初の値を取得
v1 := q[0]
q = q[1:]
// 次の値を取得
v2 := q[0]
q = q[1:]
つまりスライスqの指している場所をqの内部配列の右側にどんどんずらしていくようなイメージだ。内部配列は必要に応じて再割り当てされるのでキューがあふれることはないし、再割り当ての際に左側の参照されていない領域は捨てられる(コピーされない)のでメモリ使用量がどんどん増えてしまうこともない。