package cache@R_419_5565@ ( "fmt")type Lists struct { count int pop int last int index int List []int}func (l *Lists) Add(i int) { l.List[l.last] = i l.last += 1 if l.last >= l.count { l.last = l.index if l.index >= l.count { l.index = 0 } }}func (l *Lists) Pop() int { if l.pop < l.index { l.pop = l.index return l.List[l.pop] } i := l.List[l.pop] l.pop += 1 if l.pop >= 10 { l.pop = 0 } return i}func cmain() { count := 10 l := Lists{count: count,List: make([]int,count)} for i := 1; i < 11; i++ { l.Add(i) } fmt.Printf("%+v\n",l) for i := 0; i < 5; i++ { fmt.Println(l.Pop()) } for i := 11; i < 21; i++ { l.Add(i) } fmt.Printf("%+v\n",l) for i := 0; i < 5; i++ { fmt.Println(l.Pop()) } for i := 21; i < 31; i++ { l.Add(i) } fmt.Printf("%+v\n",l) for i := 0; i < 10; i++ { fmt.Println(l.Pop()) }}总结
以上是内存溢出为你收集整理的Golang1.8使用slice实现先进进出功能全部内容,希望文章能够帮你解决Golang1.8使用slice实现先进进出功能所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)