package main
import "fmt"
func main() {
desc := []string{"foo", "bar"}
exp := []string{"baz", "qux"}
tmp := make(map[string]string)
for _, j := range desc {
for _, n := range exp {
tmp[j] = n
}
}
fmt.Println(tmp)
}
This gives me the following output
map[foo:qux bar:qux]
I was expecting
map[foo:baz bar:baz]
Because
Key value pairs must be unique, so the outer range gets foo
first, then the inner range gets baz
first, so we should have gotten tmp["foo"]=baz
and then the inner range iterates over to qux
but tmp["foo"]
is already set, so tmp["foo"]=qux
is rejected, the outer range now iterates over to bar
and we follow the same logic above and at last we should have gotten what I was expecting.
Could someone explain, why the result came what it came?