testitor.go 385 B

12345678910111213141516171819202122232425262728
  1. package main
  2. // github.com/psilva261/timsort
  3. type iter struct {
  4. a []int
  5. index int
  6. }
  7. func (it *iter) Next() int {
  8. it.index ++
  9. return it.a[it.index]
  10. }
  11. func newIter(a []int) *iter {
  12. return &iter{a:a, index: -1}
  13. }
  14. func (it *iter) Has() bool {
  15. return it.index < len(it.a) - 1
  16. }
  17. func main() {
  18. it := newIter([]int{1, 2, 3})
  19. for it.Has() {
  20. println(it.Next())
  21. }
  22. }