blob: 69ac457adb7abc3b57ff0b9410f1d5283ca54b5c [file] [log] [blame]
package main
import (
"fmt"
)
type queue(type T) []T
func (q *queue(T)) enqueue(v T) {
*q = append(*q, v)
}
func (q *queue(T)) dequeue() (T, bool) {
if len(*q) == 0 {
var zero T
return zero, false
}
r := (*q)[0]
*q = (*q)[1:]
return r, true
}
func main() {
q := new(queue(int))
q.enqueue(5)
q.enqueue(6)
fmt.Println(q)
fmt.Println(q.dequeue())
fmt.Println(q.dequeue())
fmt.Println(q.dequeue())
}