A copy. For example,
package main
import "fmt"
func main() {
var a [3][5]int8
fmt.Println(a)
for _, h := range a {
h = [5]int8{1, 2, 3, 4, 5}
for _, cell := range h {
fmt.Print(cell, " ")
}
fmt.Println()
}
fmt.Println(a)
}
Output:
[[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]]
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
[[0 0 0 0 0] [0 0 0 0 0] [0 0 0 0 0]]
The Go Programming Language Specification
For statements
A "for" statement with a "range" clause iterates through all entries
of an array, slice, string or map, or values received on a channel.
For each entry it assigns iteration values to corresponding iteration
variables and then executes the block.
The iteration values are assigned to the respective iteration
variables as in an assignment statement.