Go Tutorials

Go Programs

How to Copy a Map in Go


How to Copy a Map in Go ?

Answer

To copy a map in Go, you can use a for loop to iterate over the original map and add its key-value pairs to a new map. This method provides a straightforward way to duplicate a map.



✐ Examples

1 Copying a Map Using a for Loop

We can copy a map in Go by iterating over the original map and adding each key-value pair to a new map using a for loop.

For example,

  1. We start by declaring and initializing a map named originalMap with some key-value pairs. In this example, the map has string keys and integer values.
  2. We declare an empty map named copiedMap.
  3. We use a for loop to iterate over originalMap and add each key-value pair to copiedMap.
  4. We print the copied map to the console using the fmt.Println function to verify the copy.

Go Program

package main

import "fmt"

func main() {
    // Declare and initialize a map
    originalMap := map[string]int{
        "one": 1,
        "two": 2,
        "three": 3,
    }

    // Declare an empty map
    copiedMap := make(map[string]int)

    // Copy the map using a for loop
    for key, value := range originalMap {
        copiedMap[key] = value
    }

    // Print the copied map
    fmt.Println("Copied Map:", copiedMap)
}

Output

Copied Map: map[one:1 two:2 three:3]

2 Copying a Map Using a Helper Function

We can create a helper function to copy a map in Go, which provides a reusable way to duplicate maps.

For example,

  1. We start by declaring and initializing a map named originalMap with some key-value pairs. In this example, the map has string keys and integer values.
  2. We define a helper function named copyMap that takes a map as a parameter and returns a copy of the map.
  3. Inside the helper function, we declare an empty map and use a for loop to iterate over the original map and add each key-value pair to the new map.
  4. We call the helper function with originalMap as an argument and store the result in a variable named copiedMap.
  5. We print the copied map to the console using the fmt.Println function to verify the copy.

Go Program

package main

import "fmt"

func copyMap(original map[string]int) map[string]int {
    copied := make(map[string]int)
    for key, value := range original {
        copied[key] = value
    }
    return copied
}

func main() {
    // Declare and initialize a map
    originalMap := map[string]int{
        "one": 1,
        "two": 2,
        "three": 3,
    }

    // Copy the map using the helper function
    copiedMap := copyMap(originalMap)

    // Print the copied map
    fmt.Println("Copied Map:", copiedMap)
}

Output

Copied Map: map[one:1 two:2 three:3]

3 Copying a Map and Modifying Values

We can copy a map in Go and modify its values during the copying process by iterating over the original map and applying transformations to the values.

For example,

  1. We start by declaring and initializing a map named originalMap with some key-value pairs. In this example, the map has string keys and integer values.
  2. We declare an empty map named copiedMap.
  3. We use a for loop to iterate over originalMap and add each key-value pair to copiedMap, modifying the values during the copying process (e.g., multiplying each value by 2).
  4. We print the copied map to the console using the fmt.Println function to verify the copy.

Go Program

package main

import "fmt"

func main() {
    // Declare and initialize a map
    originalMap := map[string]int{
        "one": 1,
        "two": 2,
        "three": 3,
    }

    // Declare an empty map
    copiedMap := make(map[string]int)

    // Copy the map and modify values
    for key, value := range originalMap {
        copiedMap[key] = value * 2
    }

    // Print the copied map
    fmt.Println("Copied Map:", copiedMap)
}

Output

Copied Map: map[one:2 two:4 three:6]

Summary

In this tutorial, we learned How to Copy a Map in Go language with well detailed examples.




More Go Maps Tutorials

  1. How to create an Empty Map in Go ?
  2. How to create a Map with Initial Key-Value Pairs in Go ?
  3. How to Print a Map in Go ?
  4. How to Add a Key-Value Pair to a Map in Go ?
  5. How to Set a Default Value for a Key in a Map in Go ?
  6. How to Update the Value for a Key in a Map in Go ?
  7. How to Check if a Map is Empty in Go ?
  8. How to Check if a Key Exists in a Map in Go ?
  9. How to Check if a Value Exists in a Map in Go ?
  10. How to Get the Value Associated with a Key in a Map in Go ?
  11. How to Remove a Key-Value Pair from a Map in Go ?
  12. How to Remove Key-Value Pairs from a Map Based on Values in Go ?
  13. How to Clear All Key-Value Pairs from a Map in Go ?
  14. How to Iterate Over Keys in a Map in Go ?
  15. How to Iterate Over Values in a Map in Go ?
  16. How to Iterate Over Entries (Key-Value Pairs) in a Map in Go ?
  17. How to Get the Size (Number of Key-Value Pairs) of a Map in Go ?
  18. How to Convert a Map to an Array of Keys in Go ?
  19. How to Convert a Map to an Array of Values in Go ?
  20. How to Convert a Map to an Array of Key-Value Pairs in Go ?
  21. How to Merge Two Maps in Go ?
  22. How to Copy a Map in Go ?
  23. How to Check if Two Maps are Equal in Go ?
  24. How to Sort a Map by Keys in Go ?
  25. How to Sort a Map by Values in Go ?
  26. How to Filter a Map Based on Keys in Go ?
  27. How to Filter a Map Based on Values in Go ?
  28. How to Reduce Values in a Map to a Single Value in Go ?
  29. How to Convert an Array of Key-Value Pairs to a Map in Go ?
  30. How to Convert a Map to a JSON String in Go ?
  31. How to Convert a JSON String to a Map in Go ?
  32. How to Swap Keys and Values in a Map in Go ?
  33. How to Create a Map of Maps in Go ?
  34. How to Iterate Over a Map of Maps in Go ?