package main import ( "fmt" "reflect" ) func main() { m := map[string]int{"a": 1, "b": 2, "c": 3} keys := reflect.ValueOf(m).MapKeys() for _, key := range keys { fmt.Println(key.Interface()) } }
package main import ( "fmt" "reflect" ) func main() { m := map[string]int{"a": 1, "b": 2, "c": 3} keys := reflect.ValueOf(m).MapKeys() newMap := make(map[string]int) for _, key := range keys { newMap[key.String()] = 0 // set default value to 0 } fmt.Println(newMap) }In this example, we create a new map with the same keys as the original map and initialize all values to a default value of 0 using reflect.Value.String() to get the string representation of the reflect.Value instance for the key. The reflect package is required for this example.