Maps with slices as values

suggest change
m := make(map[string][]int)
fmt.Printf("Non-existing key returns zero value of []int, i.e. nil: %#v\n", m["key1"])

m["key1"] = append(m["key1"], 8)
m["key1"] = append(m["key1"], 3)
fmt.Printf("\nAfter appending to slice: %#v\n", m["key1"])

delete(m, "key1")
fmt.Printf("\ndelete() sets back to nil slice: %#v\n", m["key1"])
Non-existing key returns zero value of []int, i.e. nil: []int(nil)

After appending to slice: []int{8, 3}

delete() sets back to nil slice: []int(nil)

Notice that in m["key1"] = append(m["key1"], 8) we don't have to check if m["key1"] exists. This is a result of interplay of 3 rules:

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents