测试代码
package main
import "fmt"
func main() {
intMap := map[int]int{
1: 1,
2: 2,
3: 3,
}
stringMap := map[string]string{
"1": "1",
"2": "2",
"3": "3",
}
boolMap := map[string]bool{
"a": true,
"b": true,
"c": false,
}
interfaceMap := map[string]interface{}{
"a": true,
"b": "b",
"c": 1,
}
fmt.Println(intMap[1], intMap[5])
fmt.Println(stringMap["1"], stringMap["5"])
fmt.Println(len(stringMap["1"]), len(stringMap["5"])) // len=1,len=0
fmt.Println(boolMap["a"], boolMap["c"], boolMap["e"])
fmt.Println(interfaceMap["a"], interfaceMap["c"], interfaceMap["e"])
}
测试结果
1 0
1
1 0
true false false
true 1 <nil>
结论
当map的key不存在的时候,它的返回值为这个类型的默认返回值