Go语言中的map
map是一个集合,可以使用类似处理数组和切片的方式迭代map中的元素。但map是无序的集合。无序的原因是map的实现使用了散列表。
map的创建并初始化主要是两种方式:
1.内置的make函数
2.使用map字面量
package test import ( "fmt" "testing" ) func TestMap1(t *testing.T) { var m = map[int]string{} //m = make(map[int]string) m[1] = "a" fmt.Println(m[1]) } func TestMap2(t *testing.T) { type PersonInfo struct { ID string Name string Address string } var personDB map[string]PersonInfo personDB = make(map[string]PersonInfo) // 往这个map里插入几条数据 personDB["12345"] = PersonInfo{"12345", "Tom", "Room 203,..."} personDB["1"] = PersonInfo{"1", "Jack", "Room 101,..."} person, ok := personDB["1234"] if ok { fmt.Println("Found person", person.Name, "with ID 1234.") } else { fmt.Println("Did not find person with ID 1234.") } }
补充说明,要注意以下两行的区别 :
var colors = map[string]string{} //创建和初始化
var colors map[string]string //通过声明映射创建一个nil映射,nil映射不能用于存储健值对。