package stack
import "fmt"
type stacker struct{
i int
data []int
}
func (s *stacker) push( v int) {
if len(s.data) == 10{容量为10的栈,后进先出
return
}
s.data = append(s.data, v)
s.i++
fmt.Printf("stacker:%v\n",s)
}
func (s *stacker) pop () int{
s.i--
r := s.data[s.i]
s.data = append(s.data[:s.i])
fmt.Printf("popvalue:%v\n",r)
fmt.Printf("stacker:%v\n",s)
return r
}
测试代码:
func TestStacker1(t *testing.T){
stack := new(stack2.Stacker)
stack.Push(1)
stack.Push(2)
stack.Push(3)
stack.Pop()
stack.Push(4)
}
结果