Maps
suggest changeMap 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:
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))
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
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents