Get:
go get -u github.com/cstockton/go-iterExample:
func Example() { v := []interface{}{"a", "b", []string{"c", "d"}} err := iter.Walk(v, func(el iter.Pair) error { // check for errors if err := el.Err(); err != nil { return err } // Halt iteration by returning an error. if el.Depth() > 1 { return errors.New("Stopping this walk.") } fmt.Println(el) return nil }) if err == nil { log.Fatal(err) } // Output: // Pair{(int) 0 => a (string)} // Pair{(int) 1 => b (string)} }
Package iter provides primitives for walking arbitrary data structures.
Feel free to report bugs and submit pull requests.