首页 > 学院 > 开发设计 > 正文

Golang1.8使用slice实现先进进出功能

2019-11-06 08:10:36
字体:
来源:转载
供稿:网友
package cacheimport ( "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()) }}
上一篇:大笨钟

下一篇:数组、指针、引用小结

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表