go语言中map使用哈希表,必须可以比较相等
除了slice,map,function的内建类型都可以作为key
Struct类型不包括上述字段,也可作为key
map中的key是无序的
package main
import "fmt"
func main() {
m:=map [string]string {
"name":"fyf",
"course":"golang",
"site":"imooc",
"quality":"notbad",
}
m2:=make(map[string]int)//空map一般就用make定义 m2==empty map
var m3 map[string]string//m3 == nil
fmt.Println(m,m2,m3)
fmt.Println("")
//map的遍历
fmt.Println("map的遍历")
for k,v :=range m{
fmt.Println(k,v)
}
fmt.Println("")
//mao的操作
fmt.Println("得到value")
//如果map中的key不存在,则会得到一个nil值
courseName:=m["course"]
fmt.Println(courseName)
//判断key是否存在map中
courseName2,ok:=m["course"]
fmt.Println(courseName2,ok)
if couseName,ok:=m["couse"]; ok{
fmt.Println(couseName)
}else {
fmt.Println("key 不存在")
}
fmt.Println("")
fmt.Println("删除value")
name,ok:=m["name"]
fmt.Println(name,ok)
delete(m,"name")
name,ok = m["name"]
fmt.Println(name,ok)
}