如何让 Go Map 的值类型同时支持 string 和 int 类型?
go map 类型灵活性
golang 的 map 是一种键值对数据结构,默认情况下,键和值类型是固定的。但是,有时我们希望 map 的值类型可以容纳多种类型。
问题中提到,默认的 map 值类型定义为 string,那么如何 让值类型同时支持 string 和 int 类型呢?
答案是使用 interface{}。interface{} 是一个通配类型,可以容纳任何类型。通过将 map 的值类型定义为 interface{},我们可以实现上述需求:
params := make(map[string]interface{})
现在,params 的值类型不再限于 string,可以容纳任何类型,包括 string、int、float、struct 等。
例如,我们可以向 map 中添加键值对:
params["name"] = "John" params["age"] = 30
此时,name 的值类型为 string,而 age 的值类型为 int。map 可以同时持有不同类型的值,满足了我们的需求。