数组和集合

type queue []int

func (q queuePush(v intqueue {
    return append(q, v)
}

func (q queueShift() (queueint) {
    return q[1:], q[0]
}

intQueue := make(queue0)
intQueue = intQueue.Push(1)
intQueue = intQueue.Push(3)
intQueue = intQueue.Push(5)

intQueue, first := intQueue.Shift()
//first is 1
intQueue, second := intQueue.Shift()
//second is 3
intQueue, third := intQueue.Shift()
//third is 5

fmt.Println("first =", first)
fmt.Println("second =", second)
fmt.Println("third =", third)