在Golang中有没有简单的方法将切片转换成Map?就像在Perl中将数组转换成散列一样,通过简单的赋值(如%hash = @array
)就可以很容易地完成,上面的方法将数组中的所有元素转换成散列,其中键是偶数编号的索引元素,而值是数组中奇数编号的索引元素。
在我的Go语言代码中,我有一段字符串,我想把它转换成一个Map。我想知道是否有Go语言的库代码可以做到这一点。
func main() {
var elements []string
var elementMap map[string]string
elements = []string{"abc", "def", "fgi", "adi"}
}
元素切片应转换为字符串MapelementMap
。
谢谢
7条答案
按热度按时间b1uwtaje1#
使用for循环:
runnable example on the playground
标准库没有执行此操作的函数。
x33g5p2x2#
目前还没有办法用perl的方式来实现,你只需要迭代切片,并把切片元素放在map中,比如作为map的键:
根据您要执行的操作,您必须记住一件事:map键是唯一的,因此如果切片包含重复的字符串,您可能需要使用
map[string]int
:您可以随时将该功能 Package 在一个函数中:
ar7v8xwq3#
如果要找一个函数库,你可以使用go-funk。这段代码在Go语言中可能性能不高,而且在我们有泛型之前也不习惯。
https://play.golang.org/p/-t-33z4aKM_j
qyyhg6bp4#
尝试范围
https://play.golang.org/p/h6uZn5obLKg
xfb7svmp5#
对于泛型:
bfhwhh0e6#
我只是稍微改变了ngotd的方法,以保留引用。
bz4sfanl7#
这是与一些滑动窗口问题相同的解决方案,回答了具有多于一个Map键的多结果切片: