Maps with slices as values

suggest change

main.go

	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"])

Output:

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