-map
//建立map
m := map[string]string{
"name": "ccmouse",
"course": "golang",
"site": "imooc",
"quality": "notbad",
}
//输出结果为 map[quality:notbad name:ccmouse course:golang site:imooc]
//建立map第二种方法
m2 := make(map[string]int) // m2 == empty map
//建立map第三种方法
var m3 map[string]int //m3 ==nil go语言的nil是可以参与运算的
//m2 m3结果均输出结果为 map[]
//遍历map
// 可以省略v (for k := range m{}) 也可以省略k (for _,v := range m{})
for k,v :=range m{
fmt.Println(k,v)
}
//结果为 name ccmouse
course golang
site imooc
quality notbad
courseName := m["course"] //输出为golang
caName := m["ca"] //这个不存在的输出为空
//判断map下标存不存在
courseName, ok := m["course"]
caName, ok := m["ca"]
fmt.Println(courseName, ok)
fmt.Println(caName, ok)
// 结果为 golang true
false
if caName, ok := m["ca"]; ok {
fmt.Println(caName)
} else {
fmt.Println("key 不存在")
}
// 输出结果为 key 不存在
//删除元素
name, ok := m["name"]
fmt.Println(name, ok)
delete(m, "name")
name, ok = m["name"] //已经定义过了不能再定义所以 := 变成 =
fmt.Println(name, ok)
//输出结果为 ccmouse true
false