如何在Golang中将map[string]string转换为map[string][]byte

问题描述 投票:0回答:2

我在 Golang 中有一个地图,其中的值是一个字符串:

myMap := map[string]string{
  "key1": "value1"
  "key2": "value2",
}

我需要将其转换为映射,其中值是字节切片而不是字符串。

newMap := map[string][]byte{
  "key1": []byte("value1"), 
  "key2": []byte("value2"),
}

在 Golang 中执行此转换的最佳方法是什么?我尝试循环遍历映射并将每个字符串转换为字节切片,但它似乎不是很有效。是否有更清晰的方法将地图值从 []string 批量转换为 []byte?

非常感谢任何帮助!

go
2个回答
1
投票

在 Golang 中执行此转换的最佳方法是什么?

该语言的名称是“Go”,最好的方法是通过一些微小的编程,就像你已经做的那样

[...]尝试循环遍历映射并将每个字符串转换为字节切片,但似乎效率不高。

这里的“似乎”是什么?你对代码进行了基准测试吗?这是你的算法的热路径的一部分吗?如果不是:为什么要麻烦?

是否有更清晰的方法将地图值从 []string 批量转换为 []byte?

没有。


0
投票

所以这是我用来执行此转换的函数,我希望这可以帮助其他一些 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
}

© www.soinside.com 2019 - 2024. All rights reserved.