// First declare the map var m1 map[string]string // Then use the make function to create a non-nil map, nil map cannot be assigned m1 = make(map[string]string) // Finally, assign m1[ to the declared map "a"] = "aa" m1["b"] = "bb" // Create m2 directly := make(map[string]string) // Then assign m2["a"] = "aa" m2[" b"] = "bb" // Integration of initialization + assignment m3 := map[string]string{ "a": "aa", "b": "bb", } // ======== ================================== // Find whether the key value exists if v, ok := m1[" a"]; ok { fmt.Println(v) } else { fmt.Println("Key Not Found") } // Traverse the map for k, v := range m1 { fmt.Println(k, v) }
But our code is:
data := map[string]interface{}{
"F_mobile" : mf.Mobile,
"F_certificate_code": mf.ID,
"F_true_name": gbkTrueName,
"F_create_time": timeStr,
"F_modify_time": timeStr,
}
These values are all of string type, why use interface?