1. Introduction
Nested maps in Go, sometimes referred to as maps of maps, are a powerful way to manage complex hierarchical data structures. This construct is particularly useful for scenarios where you need to associate keys with values that are themselves maps. This post will explain how to implement nested maps in Go.
2. Program Steps
1. Declare a nested map.
2. Initialize the nested map with values.
3. Access and modify data within the nested map.
4. Iterate over a nested map to print its contents.
3. Code Program
package main
import "fmt"
func main() {
// Step 1: Declare a nested map
var networkMap map[string]map[string]bool
// Step 2: Initialize the nested map with values
networkMap = make(map[string]map[string]bool)
networkMap["server1"] = make(map[string]bool)
networkMap["server1"]["192.168.1.10"] = true
networkMap["server1"]["192.168.1.11"] = false
networkMap["server2"] = make(map[string]bool)
networkMap["server2"]["10.0.0.5"] = true
// Step 3: Modify data in the nested map
networkMap["server1"]["192.168.1.11"] = true // Update IP status
// Step 4: Iterate over the nested map
fmt.Println("Network Map Status:")
for server, ips := range networkMap {
for ip, status := range ips {
fmt.Printf("Server: %s, IP: %s, Status: %t\n", server, ip, status)
}
}
}
Output:
Network Map Status: Server: server1, IP: 192.168.1.10, Status: true Server: server1, IP: 192.168.1.11, Status: true Server: server2, IP: 10.0.0.5, Status: true
Explanation:
1. package main - Defines the package for the Go program.
2. import "fmt" - Imports the Format package used for printing formatted output.
3. networkMap - A nested map with string keys at the first level and a map of string keys to boolean values at the second level is declared.
4. networkMap is initialized, defining two sub-maps corresponding to "server1" and "server2".
5. The sub-maps are populated with IP addresses and their respective statuses.
6. An IP status is updated in the nested map to illustrate how you can change the values within.
7. A nested for loop iterates over networkMap and its sub-maps, printing the server names, IP addresses, and their statuses.
8. The output displays the status of IP addresses for each server in the network map.
Comments
Post a Comment