0
0
GoHow-ToBeginner · 3 min read

How to Delete Element from Map in Go: Simple Guide

In Go, you delete an element from a map using the built-in delete function with the syntax delete(map, key). This removes the key and its associated value from the map if the key exists.
📐

Syntax

The syntax to delete an element from a map in Go is:

delete(mapName, key)
  • mapName: The map variable from which you want to remove the element.
  • key: The key of the element you want to delete.

This function does not return a value. If the key does not exist, it does nothing.

go
delete(myMap, "someKey")
💻

Example

This example shows how to create a map, delete an element by key, and print the map before and after deletion.

go
package main

import "fmt"

func main() {
    // Create a map with string keys and int values
    ages := map[string]int{"Alice": 30, "Bob": 25, "Charlie": 35}

    fmt.Println("Before deletion:", ages)

    // Delete the key "Bob" from the map
    delete(ages, "Bob")

    fmt.Println("After deletion:", ages)
}
Output
Before deletion: map[Alice:30 Bob:25 Charlie:35] After deletion: map[Alice:30 Charlie:35]
⚠️

Common Pitfalls

  • Trying to delete a key that does not exist does not cause an error, but it also does nothing.
  • Deleting from a nil map does nothing and does not cause a runtime panic, but ensure the map is initialized before use.
  • Deleting inside a loop over the same map can cause unexpected behavior; be careful when modifying a map while iterating.
go
package main

import "fmt"

func main() {
    var myMap map[string]int // nil map

    // This will NOT cause a runtime panic
    delete(myMap, "key")

    // Correct way: initialize the map first
    myMap = make(map[string]int)
    myMap["key"] = 100
    delete(myMap, "key")
    fmt.Println("Map after deletion:", myMap)
}
Output
Map after deletion: map[]
📊

Quick Reference

Summary tips for deleting elements from maps in Go:

  • Use delete(map, key) to remove an element.
  • Deleting a non-existent key is safe and does nothing.
  • Deleting from a nil map does nothing and does not cause a panic.
  • Be cautious when deleting keys while iterating over a map.

Key Takeaways

Use the built-in delete function with syntax delete(map, key) to remove elements.
Deleting a key that does not exist is safe and has no effect.
Deleting from a nil map does nothing and does not cause runtime panics.
Avoid deleting keys while iterating over the same map to prevent unexpected behavior.