Unexpected values in range loop
yourbasic.org/golang

Why does this code
primes := []int{2, 3, 5, 7} for p := range primes { fmt.Println(p) } 0 1 2 3 Answer
For arrays and slices, the range loop generates two values:
- first the index,
- then the data at this position.
If you omit the second value, you get only the indices.
To print the data, use the second value instead:
primes := []int{2, 3, 5, 7} for _, p := range primes { fmt.Println(p) } In this case, the blank identifier (underscore) is used for the return value you're not interested in.
See 4 basic range loop (for-each) patterns for all about range loops in Go.