我在 Golang 中有一个地图,其中的值是一个字符串:
myMap := map[string]string{
"key1": "value1"
"key2": "value2",
}
我需要将其转换为映射,其中值是字节切片而不是字符串。
newMap := map[string][]byte{
"key1": []byte("value1"),
"key2": []byte("value2"),
}
在 Golang 中执行此转换的最佳方法是什么?我尝试循环遍历映射并将每个字符串转换为字节切片,但它似乎不是很有效。是否有更清晰的方法将地图值从 []string 批量转换为 []byte?
非常感谢任何帮助!
在 Golang 中执行此转换的最佳方法是什么?
该语言的名称是“Go”,最好的方法是通过一些微小的编程,就像你已经做的那样
[...]尝试循环遍历映射并将每个字符串转换为字节切片,但似乎效率不高。
这里的“似乎”是什么?你对代码进行了基准测试吗?这是你的算法的热路径的一部分吗?如果不是:为什么要麻烦?
是否有更清晰的方法将地图值从 []string 批量转换为 []byte?
没有。
所以这是我用来执行此转换的函数,我希望这可以帮助其他一些 Go 程序员:
func convertToBytes(input map[string]string) map[string][]byte {
output := make(map[string][]byte)
for key, str := range input {
output[key] = []byte(str)
}
return output
}