Skip to content

Check if Key Exists in Map in Golang

Map

Map is a data structure which implements a hash table.

Map is a simple key-value storage. Map offers fast lookups, adds and deletes.

Zero Value Table

Map don't explicitly check if a key is created or not, instead if a key doesn't exists it returns the default value of value type.

Data type and their Default Value

Type Default Value
Numeric type(int, float) 0
Boolean false
String "" (empty string)

For Ex.

package main

import "fmt"

func main() {
    m1 := map[string]int{
        "a": 1}
    m2 := map[string]bool{
        "a": true,
    }

    fmt.Printf("Value of key 'a' is %v\nValue of key 'b' is %v\n", m1["a"], m1["b"])
    fmt.Printf("Value of key 'a' is %v\nValue of key 'b' is %v\n", m2["a"], m2["b"])
}

Output

Value of key 'a' is 1
Value of key 'b' is 0
Value of key 'a' is true
Value of key 'b' is false

Check if key exist in a map or not

When value of the key is retrived from the map, it also returns a boolean value.

It is a widely used practice in golang to name ok to the boolean argument.

package main

import "fmt"

func main() {
    m1 := map[string]int{
        "a": 1,
        "b": 2,
    }

    value, ok := m1["a"]

    fmt.Printf("Key 'a' exists %v and its value is %v\n", ok, value)

    _, ok = m1["c"]

    fmt.Printf("Key 'c' exists %v\n", ok)
}

Output

Key 'a' exists true and its value is 1
Key 'c' exists false

Final Words

Map is a very powerful data structure. If order is not required then prefer map to array.