four iterators of golang