// map是Go内置的关联数据类型(在其他语言中有时成为hash或者字典)
package main
import "fmt"
func main() {
m := make(map[string]int) // 使用内置函数make(map[key-type]value-type)创建空的map
// 使用name[key]=val句法设置键值对
m["k1"] = 7
m["k2"] = 13
fmt.Println("map: ", m) // 使用fmt.Println将会输出map中全部的键值对
v1 := m["k1"] // 使用name[key]来获取key所对应的值
fmt.Println("v1: ", v1)
fmt.Println("len: ", len(m)) // 在map上调用内置函数len时返回的是键值对的数量
delete(m, "k2") // 内置函数delete删除map中的键值对
fmt.Println("map: ", m)
// 不需要获取值本身,所以使用空标识符_忽略它
_, prs := m["k2"] // 从map中获取值时,可选的第二个返回值标识该键是否在map中,这可以用于消除缺失键和具有零值(如 “”或者0)的键之间的歧义
fmt.Println("prs: ", prs)
n := map[string]int{"foo": 1, "bar": 2} // 使用这种句法在一行内声明和初始化map
fmt.Println("map: ", n)
}
// 注意,当使用fmt.Println输出map时,输出的形式如map[k:v k:v]