golang make(map[string]interface{})
时间: 2023-09-14 16:09:31 浏览: 49
在 Golang 中,`make` 是用于创建动态数据结构的内置函数之一。其中,`make` 函数可以用于创建一个空的 `map`,并指定其 key 和 value 的类型。
以下是一个示例代码:
```go
m := make(map[string]interface{})
m["Name"] = "John"
m["Age"] = 30
fmt.Println(m) // Output: map[Name:John Age:30]
```
在上面的代码中,我们使用 `make` 函数创建了一个空的 `map`,并指定其 key 的类型为 `string`,value 的类型为 `interface{}`。`interface{}` 表示该 `map` 中的 value 可以是任意类型。
接着,我们向 `map` 中动态添加了两个字段,分别是 `Name` 和 `Age`。
最后,我们使用 `fmt.Println` 函数打印出 `map` 的值。输出结果为 `map[Name:John Age:30]`。
相关问题
golang interface转map类型
在Go语言中,我们可以将一个interface类型的变量转换成一个map类型。具体实现方式如下:
```go
func InterfaceToMap(i interface{}) (map[string]interface{}, error) {
// 判断参数是否为interface类型
if reflect.TypeOf(i).Kind() != reflect.Map {
return nil, errors.New("Error: input is not a map")
}
// 定义结果map
result := make(map[string]interface{})
// 遍历interface类型变量
for k, v := range i.(map[interface{}]interface{}) {
// 将interface{}类型的键和值转换成string和interface{}类型
result[k.(string)] = v
}
return result, nil
}
```
这里使用了反射(reflect)技术,实现了将interface类型的变量转换为map类型。需要注意的是,在转换过程中,需要判断参数是否为interface类型,并且需要将interface{}类型的键和值转换成string和interface{}类型。
golang 利用反射获取map[string]interface{}的key
可以使用反射库中的`MapKeys()`方法获取`map[string]interface{}`的所有key。示例代码如下:
```go
import "reflect"
func GetMapKeys(m map[string]interface{}) []string {
keys := make([]string, 0, len(m))
v := reflect.ValueOf(m)
for _, key := range v.MapKeys() {
keys = append(keys, key.String())
}
return keys
}
```
这个函数会返回一个字符串切片,包含传入的`map[string]interface{}`的所有key。