go - 如何将 map[string][]byte 转换为 map[string]interface{}
问题描述
我有一个函数,除了 map[string]interface{} 类型的参数,但我有 map[string][]byte 类型的变量。我的问题是如何在 Go 中将 map[string][]byte 转换为 map[string]interface{}。
解决方案
好的,所以要回答您的问题,可以在传递或接收不确定其类型的对象/结构的地方使用 GO 中的接口。
例如:
type Human struct {
Name string
Age int
School string
DOB time.Time
}
type Animal struct {
Name string
HasTail bool
IsMamal bool
DOB time.Time
}
func DisplayData(dataType interface{}, data byte)
这个显示数据函数可以显示任何类型的数据,它需要数据和一个结构,在我们传入它们之前,函数都不知道这两者......数据可以是人类或动物,两者都有不同的值,可以映射取决于我们传递给函数的接口......
这意味着我们可以重用代码来显示任何数据,只要我们告诉函数我们要将数据映射到并显示的数据类型(即动物或人类......)
在您的情况下,解决方案是定义数据类型、字节中数据的结构作为结构以及您制作地图的位置而不是 map[string][]byte
尝试更改为
map[string]YourDefinedStructure
并将其传递给接受map[string]interface{}
.
希望这会有所帮助,尽管您提供的数据类型作为用例和接受的函数的性质map[string]interface{}
会影响所采用的方法,但这个问题相当模糊。
推荐阅读
- jenkins - 可以在与 Jenkins 本身相同的服务器上使用从属插件 ssh 到 Jenkins
- asp.net-web-api - 无法加载文件或程序集“Microsoft.IdentityModel.Tokens,版本=5.2.0.0
- c# - .NET Windows 窗体未显示在任务栏中
- node.js - Mongoose 计数使用聚合嵌入数组元素
- swift - 如何在 Swift 中删除添加的快捷方式?
- perl - 使用 perl Win32::OLE 在 word 文档中插入图片
- python - server_socket.bind(sa) 失败
- r - 为什么我不能在分组数据 r 上创建汇总统计?
- vue.js - 使用 Jest 和 vue-utils 测试 Vue 组件
- python - 使用pandas合并excel文件数据