How to Iterate Over Entries (Key-Value Pairs) in a Map in Go - Step by Step Examples
How to Iterate Over Entries (Key-Value Pairs) in a Map in Go ?
Answer
To iterate over entries (key-value pairs) in a map in Go, you can use a range-based for loop. This allows you to access each key-value pair in the map.
✐ Examples
1 Iterating Over Entries Using Range-Based For Loop
We can iterate over entries in a map in Go using a range-based for loop, which provides a convenient syntax for iterating over all key-value pairs in the map.
For example,
- We start by declaring and initializing a map named
myMap
with some key-value pairs. In this example, the map has string keys and integer values. - We use a range-based for loop to iterate over the map. The loop extracts both the key and value from each key-value pair in the map.
- We print each key and value to the console using the
fmt.Println
function to verify that we are iterating over all entries.
Go Program
package main
import "fmt"
func main() {
// Declare and initialize a map
myMap := map[string]int{
"one": 1,
"two": 2,
"three": 3,
}
// Iterate over entries using range-based for loop
for key, value := range myMap {
fmt.Println("Key:", key, "Value:", value)
}
}
Output
Key: one Value: 1 Key: two Value: 2 Key: three Value: 3
2 Iterating Over Keys and Values Separately
We can iterate over keys and values separately in a map in Go using two range-based for loops, which provides a way to work with keys and values independently of each other.
For example,
- We start by declaring and initializing a map named
myMap
with some key-value pairs. In this example, the map has string keys and integer values. - We declare slices named
keys
andvalues
to store the keys and values from the map separately. - We use a range-based for loop to iterate over the map and append each key to the
keys
slice and each value to thevalues
slice. - We use two range-based for loops to iterate over the
keys
andvalues
slices and print each key and value to the console using thefmt.Println
function to verify that we have stored all keys and values separately.
Go Program
package main
import "fmt"
func main() {
// Declare and initialize a map
myMap := map[string]int{
"one": 1,
"two": 2,
"three": 3,
}
// Declare slices to store the keys and values
var keys []string
var values []int
// Store keys and values separately
for key, value := range myMap {
keys = append(keys, key)
values = append(values, value)
}
// Iterate over the keys slice
for _, key := range keys {
fmt.Println("Key:", key)
}
// Iterate over the values slice
for _, value := range values {
fmt.Println("Value:", value)
}
}
Output
Key: one Key: two Key: three Value: 1 Value: 2 Value: 3
3 Storing and Iterating Over Entries Separately
We can store entries in a separate slice and then iterate over the slice in Go, which provides a way to work with key-value pairs independently of the map.
For example,
- We start by declaring and initializing a map named
myMap
with some key-value pairs. In this example, the map has string keys and integer values. - We declare a slice named
entries
to store the key-value pairs from the map. - We use a range-based for loop to iterate over the map and append each key-value pair to the
entries
slice as astruct
containing both the key and value. - We use another range-based for loop to iterate over the
entries
slice and print each key and value to the console using thefmt.Println
function to verify that we have stored all entries separately.
Go Program
package main
import "fmt"
// Define a struct to store key-value pairs
type entry struct {
key string
value int
}
func main() {
// Declare and initialize a map
myMap := map[string]int{
"one": 1,
"two": 2,
"three": 3,
}
// Declare a slice to store the entries
var entries []entry
// Store entries in the slice
for key, value := range myMap {
entries = append(entries, entry{key, value})
}
// Iterate over the entries slice
for _, e := range entries {
fmt.Println("Key:", e.key, "Value:", e.value)
}
}
Output
Key: one Value: 1 Key: two Value: 2 Key: three Value: 3
Summary
In this tutorial, we learned How to Iterate Over Entries (Key-Value Pairs) in a Map in Go language with well detailed examples.
More Go Maps Tutorials
- How to create an Empty Map in Go ?
- How to create a Map with Initial Key-Value Pairs in Go ?
- How to Print a Map in Go ?
- How to Add a Key-Value Pair to a Map in Go ?
- How to Set a Default Value for a Key in a Map in Go ?
- How to Update the Value for a Key in a Map in Go ?
- How to Check if a Map is Empty in Go ?
- How to Check if a Key Exists in a Map in Go ?
- How to Check if a Value Exists in a Map in Go ?
- How to Get the Value Associated with a Key in a Map in Go ?
- How to Remove a Key-Value Pair from a Map in Go ?
- How to Remove Key-Value Pairs from a Map Based on Values in Go ?
- How to Clear All Key-Value Pairs from a Map in Go ?
- How to Iterate Over Keys in a Map in Go ?
- How to Iterate Over Values in a Map in Go ?
- How to Iterate Over Entries (Key-Value Pairs) in a Map in Go ?
- How to Get the Size (Number of Key-Value Pairs) of a Map in Go ?
- How to Convert a Map to an Array of Keys in Go ?
- How to Convert a Map to an Array of Values in Go ?
- How to Convert a Map to an Array of Key-Value Pairs in Go ?
- How to Merge Two Maps in Go ?
- How to Copy a Map in Go ?
- How to Check if Two Maps are Equal in Go ?
- How to Sort a Map by Keys in Go ?
- How to Sort a Map by Values in Go ?
- How to Filter a Map Based on Keys in Go ?
- How to Filter a Map Based on Values in Go ?
- How to Reduce Values in a Map to a Single Value in Go ?
- How to Convert an Array of Key-Value Pairs to a Map in Go ?
- How to Convert a Map to a JSON String in Go ?
- How to Convert a JSON String to a Map in Go ?
- How to Swap Keys and Values in a Map in Go ?
- How to Create a Map of Maps in Go ?
- How to Iterate Over a Map of Maps in Go ?