Go语言的小细节--map

时间:2022-05-05
本文章向大家介绍Go语言的小细节--map,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Go和Python一样,都有map。在Python里叫做字典,在Go里叫做映射。

与Go相比Python对map的使用相对更加灵活,毕竟在Pyhton的哲学里一切皆对象。

在Go里面创建map有两种方法,一种是先申明在赋值,另一种是在申明的时候直接进行赋值。

在这里Go创建map的方式与C++有点像。

先说第一种:先申明再赋值

var item map[string]stringitem = make(map[string]string, 1000)

由于是刚开始学习Go语言,对于Go机制的理解还不够深,所以我只能大概用C++的方式来解释一下,说的不对的地方请大神指正。这里的先申明map类型但是系统还没有给item这个变量分配空间,使用make语句来让系统给它分配内存空间。如果没有make这条语句,系统会报错。make的第二个参数是向系统申请多大的空间。这个100是map的存储能力。

再说第二种:申明的时候直接进行赋值

(1)var item map[string]string{"aaa":, "111", "bbb":"222"}(2)var item map[string]string{    "aaa":"111",    "bbb":"222",
}(3)item := map[string]string{"aaa":"111", "bbb":"222"}(4)item := map[string]string{    "aaa":"111",    "bbb":"222",
}

为了查看方便,我在标记了序号。上面一共有四种方法,仔细看其实也就是两种。

(1)(2)是先申明为map类型进行赋值 (3)(4)是直接进行赋值,连申明都省去了。系统会自动为item这个变量进行类型的判断并赋值。

这里有个小细节

(1)和(2)其实是一样的,只是(1)是在一行,(2)是分成了多行。当遇到需要写很多key:value对时(2)显示的相对更直观一些。细节就在于在如果一行写的话,最后一个key:value后面不需要加逗号,如果分行写的话,最后一个key:value后面要加逗号。否则系统就会报错。