Arrays and collections

type stack []int

func (s stackPush(v intstack {
    return append(s, v)
}

func (s stackPop() (stackint) {
    l := len(s)
    return s[:l-1], s[l-1]
}

intStack := make(stack0)
intStack = intStack.Push(1)
intStack = intStack.Push(3)
intStack = intStack.Push(5)

intStack, first := intStack.Pop()
//first is 5
intStack, second := intStack.Pop()
//second is 3
intStack, third := intStack.Pop()
//third is 1

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