Go和Python一样,都有map。在Python里叫做字典,在Go里叫做映射。
与Go相比Python对map的使用相对更加灵活,毕竟在Pyhton的哲学里一切皆对象。
在Go里面创建map有两种方法,一种是先申明在赋值,另一种是在申明的时候直接进行赋值。
在这里Go创建map的方式与C++有点像。
先说第一种:先申明再赋值
```go
var item map[string]string
item = make(map[string]string, 1000)
```
由于是刚开始学习Go语言,对于Go机制的理解还不够深,所以我只能大概用C++的方式来解释一下,说的不对的地方请大神指正。这里的先申明map类型但是系统还没有给item这个变量分配空间,使用make语句来让系统给它分配内存空间。make的第二个参数是向系统申请多大的空间。这个1000是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后面要加逗号。否则系统就会报错。
更多评论