Go Map

In Go, Map is a collection of unordered key:value pairs. While key has to be distinct in a Map, value can occur in duplicates.

You can access the key:value pair of a Map using key. Key in a Map acts like an index in an Array.

Declaration

To declare a Map, we may use map keyword along with the datatypes of key and value.

var map_name map[key_data_type]value_data_type

Please not that the square brackets are mandatory around the key data type.

example.go

package main

import "fmt"

func main() {
    var colorMap map[string]string
    fmt.Println(colorMap)
}

Output

map[]

Declaring a map creates an empty map.

Initialization

To initialize a Map, you can use assignment operator and a set of all key value pairs.

var map_name = map[key_data_type]value_data_type {key1:value1, key2:value2}

The square brackets are mandatory and does not represent an optional.

example.go

package main

import "fmt"

func main() {
    var colorMap = map[string]string {"white":"#FFFFFF", "black":"#000000", "red":"#FF0000", "blue":"#0000FF", "green":"#00FF00"}
    fmt.Println(colorMap)
}

Output

map[white:#FFFFFF black:#000000 red:#FF0000 blue:#0000FF green:#00FF00]

You can also add a key:value pair to the Map using key as index and value as element.

example.go

package main

import "fmt"

func main() {
	var colorMap = make(map[string]string)
	colorMap["white"] = "#FFFFFF"
	colorMap["black"] = "#000000"
	colorMap["red"] = "#FF0000"
	colorMap["blue"] = "#0000FF"
	colorMap["green"] = "#00FF00"
	
	fmt.Println(colorMap)
}

Output

map[green:#00FF00 white:#FFFFFF black:#000000 red:#FF0000 blue:#0000FF]

Observe that the key value pairs are printed not in an order, because Map is a non-sequential collection.

Access Key:Value Pairs

We can get value using key from a Map. Also, key can be used as an index notation to access the corresponding value.

example.go

package main

import "fmt"

func main() {
	var colorMap = map[string]string {"white":"#FFFFFF", "black":"#000000", "red":"#FF0000", "blue":"#0000FF", "green":"#00FF00"}
	
	fmt.Println(colorMap["white"])
	fmt.Println(colorMap["red"])
}

Output

#FFFFFF
#FF0000

Iterate over Map

We can iterate through key value pairs of a Map using Range.

example.go

package main

import "fmt"

func main() {
	var colorMap = map[string]string {"white":"#FFFFFF", "black":"#000000", "red":"#FF0000", "blue":"#0000FF", "green":"#00FF00"}
	
	for key, value := range colorMap {
		fmt.Println("Hex value of", key, "is", value)
	}
}

Output

Hex value of white is #FFFFFF
Hex value of black is #000000
Hex value of red is #FF0000
Hex value of blue is #0000FF
Hex value of green is #00FF00

Update Value for a Key

We can update a value for a Key in Map using assignment operator. Just assign the new value to the Map indexed by the specific Key.

example.go

package main

import "fmt"

func main() {
	var colorMap = map[string]string {"white":"#FFFFFF", "black":"#000000", "red":"#FF0000"}
	
	// update
	colorMap["red"] = "#FF2222"
	
	fmt.Println(colorMap["red"])
}

Output

#FF2222

Delete a Key:Value pair

To delete a Key:Value pair, you can use delete() function.

delete(map_name, Key)

In the following example, we will delete the key:value pairs for the Keys:[“white”, “black”].

example.go

package main

import "fmt"

func main() {
	var colorMap = map[string]string {"white":"#FFFFFF", "black":"#000000", "red":"#FF0000", "blue":"#0000FF", "green":"#00FF00"}
	
	delete(colorMap, "white")
	delete(colorMap, "black")
	
	fmt.Println(colorMap)
}

Output

map[blue:#0000FF green:#00FF00 red:#FF0000]

Conclusion

In this Golang Tutorial, we learned about Go Maps and about different operations to read and update the key:value pairs of Go Map.