When we start in Go and we already developed in another language, we can be perturbed about how maps works.
Declaration
The object type map
doesn't exist in Go. A key word exist instead and it helps to create an object type based on maps with the following structure:
map[]
Examples
map[string]string
For example, to create a map which will link a string key to a number, you will use : map[string]int
For a map used to link a rune to a book
object : map[rune]book
Details on object type
As map object type doesn't directly exist, object types are identicals only if they have the same key type and value type.
map[rune]book != map[string]int
map[rune]book != map[string]book
map[rune]book != map[rune]int
map[rune]book == map[rune]book
Utilization
m := map[string]string{} // Declare a map
m["p"] = 3 // Add a value
m["p"] = 4 // Update a value
fmt.Println(m) // Print a map: "map[p:4]"
v := m["p"] // Get a value: v == 4
v = m["p2"] // Value not found: v == 0 (zero)
_, found := m["p"] // found == true
_, found = m["p2"] // found == false
if x, found := m["p"]; found {
fmt.Println(x)
} // Print "4"
delete(m, "p") // Delete a map
I hope it will help you! 🍺
Top comments (0)