map是一堆键值对的未排序集合,类似Python中字典的概念,它的格式为map[keyType]valueType,是一个key-value的hash结构。map的读取和设置也类似slice一样,通过key来操作,只是slice的index只能是int类型,而map多了很多类型,可以是int,可以是string及所有完全定义了==与!=操作的类型。
声明map的语法如下:
var map变量名 map[key] value
其中:key为键类型,value为值类型
例如:value不仅可以是标注数据类型,也可以是自定义数据类型
var numbers map[string] int var myMap map[string] personInfo
personInfo为自定义结构体,存储个人信息,定义如下
type personInfo struct { ID string Name string Address string }
map初始化:
1、直接初始化(创建)
rating := map[string] float32 {"C":5, "Go":4.5, "Python":4.5, "C++":2 } myMap := map[string] personInfo{"1234": personInfo{"1", "Jack", "Room 101,..."},}
2、通过make初始化(创建)
Go语言提供的内置函数make()可以用于灵活地创建map。
创建了一个键类型为string,值类型为int的map
numbers := make(map[string] int)
创建了一个键类型为string,值类型为personInfo的map
myMap = make(map[string] personInfo)
也可以选择是否在创建时指定该map的初始存储能力,如创建了一个初始存储能力为5的map
myMap = make(map[string] personInfo, 5)
创建后初始化如下:
numbers["one"] = 1 myMap["1234"] = personInfo{"1", "Jack", "Room 101,..."}
更多golang知识请关注golang教程栏目。
以上就是golang如何创建map的详细内容,更多请关注其它相关文章!