How to Check if a Map Contains a Key in Go
Hash tables are implemented in Go
as map
data type. Go Maps can be viewed as a collection of unordered pairs of key-value pairs. Maps
are one of the most powerful and versatile data types in Go
because of their ability to perform fast lookups, adds, and deletes. We get two return values when we try to get the value of key
in a map
. If the second value is true, then key
is present on the map
.
Structure of map
in Go
Syntax for map
var map_name map[KeyType]ValueType
Where, KeyType
is any comparable datatype
and ValueType
is also any datatype
including map
itself too. The datatype
for all the keys
in a map
must be the same. Similarly, the datatype
for all the values
in a map
must also be same. However, the datatype
of keys
and datatype
of values
can be different.
package main
import "fmt"
func main() {
map_1 := map[string]string{
"Jenna": "Sthapit",
}
for k, v := range map_1 {
fmt.Printf("Key:%v\nValue: %s\n", k, v)
}
}
Output:
Key:Jenna
Value: Sthapit
In the above example, map_1
has string
datatype for both keys
and values
. In map_1
, Sthapit
is value for key Jenna
.
Check for key
in Go-map
Syntax to Check if a map
Contains key
in Go
first_value, second_value := map_name[key_name]
The statement above returns two values viz. first_value
and second_value
. The first_value
gives the value of key
. If the map_name
doesn’t contain key_name
, the first_value
will be the default zero value. Similarly, second_value
is a boolean value which will be true
if the key_name
is present in the map
. We can interpret first_value
and second_value
in different ways to check whether the map_name
contains key_name
.
package main
import "fmt"
func main() {
map_name := map[int]string{
0: "Alok",
1: "Reman",
2: "Riken",
3: "Rudra",
}
_, second_value_1 := map_name[1]
fmt.Printf("second_value for 1: %t\n", second_value_1)
_, second_value_9 := map_name[9]
fmt.Printf("second_value for 9: %t\n", second_value_9)
}
Output:
second_value for 1: true
second_value for 9: false
Here second_value
for 0
is true
as key 0
is present in the map_name
. However, the second_value
for 9
is false
as key 9
is not present in the map_name
.
package main
import "fmt"
func main() {
map_name := map[string]string{
"Giri": "Alok",
"Nembang": "Reman",
"Maharjan": "Riken",
"Jha": "Rudra",
}
if first_value, second_value := map_name["Giri"]; second_value {
fmt.Printf("Giri is present in map. Value is: %s\n", first_value)
} else {
fmt.Printf("Giri is not present in map.\n")
}
if first_value, second_value := map_name["Sthapit"]; second_value {
fmt.Printf("Sthapit is present in map. Value is: %s\n", first_value)
} else {
fmt.Printf("Sthapit is not present in map. \n")
}
}
Output:
Giri is present in map. Value is: Alok
Sthapit is not present in map.
In this example, we used if
statement to check if a key
exists in the map
. Giri
is a key
and Sthapit
is not a key
of map_name
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn