1、map的创建和初始化
(1)使用make函数,例:dict := make(map[string]int);
(2)使用映射字面量,例:dict := map[stringstring{"Red":"Hong", "Orange":"Huang"},即初始化。
2、可通过声明一个未初始化的映射来创建一个值为nil的映射。nil映射不能用于存储键值对,否则,会产生一个语言运行错误,例:
func main(){
var colors map[string]string
colors["Red"] = "Hong"
}
//运行结果:
panic: assignment to entry in nil map
3、从映射获取值的两种方法:
(1)同时获取值和是否存在的标志,例:
var colors = map[string]string{"Red":"hong", "Orange":"Cheng"}
value, if_exists := colors["Blue"]
if if_exists {
fmt.Println(value)
}
(2)只返回键对应的值,再判断这个值是不是零值来确定键是否存在,例:
var colors = map[string]string{"Red":"hong", "Orange":"Cheng"}
value := colors["Blue"]
if value != "" {
fmt.Println(value)
}
4、映射迭代
colors := map[string]string{
"AliceBlue": "ab",
"Coral": "cr",
"DarkGrey": "dg",
"ForestGreen": "fg" }
for key, value := range colors {
fmt.Printf("Key: %s, Value: %s\n", key, value)
}
// 运行结果:
Key: AliceBlue, Value: ab
Key: Coral, Value: cr
Key: DarkGrey, Value: dg
Key: ForestGreen, Value: fg
5、映射作为函数的参数,并被该函数修改时,所有对这个映射的引用都会觉察到这个修改。