golang中的map在初始化方面和数组比较相似。区别在于map在make的时候可以只指定类型,不指定大小,而且map也不存在capacity。map类型一般是如下形式map[key类型]value类型
package main
import "fmt"
func main() {
//var声明,稍后再使用make分配空间
var map1 map[string]string
if map1 == nil {
fmt.Println("nil")
}
map1 = make(map[string]string, 10)
map1["never"] = "java"
map1["before"] = "c++"
map1["now"] = "golang"
fmt.Println(map1)
//:=声明并分配空间
map2 := make(map[string]int, 5)
map2["osatp"] = 99
map2["csapp"] = 119
fmt.Println(map2)
//声明并初始化
map3 := map[string]string{
"key1": "value1",
"key2": "value2",
}
fmt.Println(map3)
for index, value := range map3 {
fmt.Println(index, value)
}
}
以map变量map1为例,如果key1不存在的话map1[key1] = value1将会在map1中新增一个键值对,反之则会将key1对应的值改为value1。使用delete(map1,key1)
可以从map1中删除key1所对应的键值对。