Maps

suggest change

Map is an unordered collection of key-value pairs.

Zero value of a map is nil.

Other languages call it a dictionary (C#, Python) or a hash table (C++).

Iteration over a map has a random order. Many languages are different in that respect.

Basics of maps:

main.go

	m := make(map[string]int)

	// set the value
	m["three"] = 3
	m["four"] = 4

	// get the value and see if the value exists
	key := "four"
	if value, ok := m[key]; ok {
		fmt.Printf("Key '%s' exists and maps to %d\n", key, value)
	} else {
		fmt.Printf("Key '%s' doesn't exists\n", key)
	}

	key = "five"
	if value, ok := m[key]; ok {
		fmt.Printf("Key '%s' exists and maps to %d\n", key, value)
	} else {
		fmt.Printf("Key '%s' doesn't exists\n", key)
	}

	// if value doesn't exist, the result of lookup is zero value. In this case zero value of int is 0
	fmt.Printf("\nValue for non-existing key: %d\n\n", m["not-exists"])

	// iterating over keys and values
	fmt.Printf("All keys and their values:\n")
	for key, value := range m {
		fmt.Printf("%s => %d\n", key, value)
	}

	fmt.Printf("\nBefore deletion: len(m)=%d\n", len(m))
	delete(m, "four")
	fmt.Printf("After deletion : len(m)=%d\n", len(m))

Output:

Key 'four' exists and maps to 4
Key 'five' doesn't exists

Value for non-existing key: 0

All keys and their values:
three => 3
four => 4

Before deletion: len(m)=2
After deletion : len(m)=1

Declare and initialize a map

Create a map

Get value by key

Get map size (number of map entries)

Copy a map

Iterate a map with range

Delete from a map

Use map as a set

Maps with slices as values

Concurrent access of maps

Zero value of a map

Feedback about page:

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



Table Of Contents