Honestly I would just prefer an interface that can be implemented (not this interface.. one like it that is better thought out).
type Iterator interface{} {
// Returns the next object and true, or nil and false if iteration has ended.
func NextIteration() (interface{}, bool)
}
Even better (in my opinion) if it also adds a finalizer function to help clean up resources used during iteration and some kind of error handling.. but that might be asking too much given my track record of getting golang improvements approved. I still want else on for statements dang it! =)