10-maps

//  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]
上次修改: 10 January 2020