Mysticbinary

只有通过概念的劳作才能获得真实的思想

go map嵌套 map的value可以是任意类型

在日常编程中,除了使用内置的数据类型,还会使用一些复杂的自定义数据类型,比如map K为string,V为数组。

先了解一下go对map的基本设定:
map的key可以是任意内置的数据类型(如int),或者其它可以通过"=="进行等值比较的数据类型,如interface和指针都可以。 slice、数组、map、struct类型都不能作为key。 经网友指出,这句话为错误。

map的value可以是任意类型,例如嵌套一个slice到map中:

func main() {
	testmap := map[string][]string{}
	testmap["1"] = []string{"001", "002"}

	fmt.Println(testmap["1"])
}

run

➜  testgo go run main.go
[001 002]

遍历:

func main(){
	testmap := map[string][]string{}
	testmap["1"] = []string{"001", "002"}

	for order := range testmap{
		fmt.Println(order, testmap[order])
		fmt.Println(testmap[order][0])
		fmt.Println(testmap[order][1])
	}
}

run

➜  testgo go run main.go
1 [001 002]
001
002

参考

https://studygolang.com/articles/16426


这篇文章对你有帮助吗?作为一名程序工程师,在评论区留下你的困惑或你的见解,大家一起来交流吧!
微信公众号: Mysticbinary
Github:https://github.com/Mysticbinary
本文版权归作者所有,欢迎转载,但未经作者同意请保留此段声明,请在文章页面明显位置给出原文链接
声明:本文章仅限于讨论网络安全技术,请勿用作任何非法用途,否则后果自负,本人和博客园不承担任何责任!

posted on 2020-07-21 10:48  Mysticbinary  阅读(2376)  评论(2编辑  收藏  举报

导航