1.var创建不初始化值
1.var声明变量不初始化,默认 map 是 nil,nil map 不能用来存放键值对 ;
2.var声明变量不初始化,可以使用len函数
var map_variable map[key_data_type]value_data_type
func main() {
var a map[int]bool
fmt.Println(a) //输出:map[]
fmt.Println(len(a))//输出:0
}
func main() {
var a map[int]bool
a[1] = true//在这里运行时报错
fmt.Println(a)
}
2.var创建初始化值
1.var创建初始化值的话,可以使用len函数,也可以后续再添加值
func main() {
var a map[int]bool = map[int]bool{
1: true,
2: false,
}
fmt.Println(len(a))//2
//可以后续再添加值
a[3] = false
a[4] = true
fmt.Println(len(a))//4
fmt.Println(a) //输出:map[1:true 2:false 3:false 4:true]
}
3.make创建不指定大小
1.make初始化map时候如果不指定大小的话,能对map使用len()函数
2.make初始化map时候如果不指定大小的话,初始化的map不是nil
/* 使用 make 函数不指定cap */
map_variable := make(map[key_data_type]value_data_type)
func main() {
a := make(map[int]bool)
if a == nil {
fmt.Println("a是nil")
} else {
fmt.Println("a不是nil")//输出a不是nil
}
fmt.Println(len(a)) //0
fmt.Println(a) //map[]
a[1] = false
fmt.Println(len(a)) //1
fmt.Println(a) //map[1:false]
}
4.make创建指定大小
make创建指定大小,但即使如果超出大小了,仍然可以添加键值对
func main() {
a := make(map[int]bool, 2)
if a == nil {
fmt.Println("a是nil")
} else {
fmt.Println("a不是nil") //输出a不是nil
}
fmt.Println(len(a)) //0
fmt.Println(a) //map[]
a[1] = false
fmt.Println(len(a)) //1
fmt.Println(a) //map[1:false]
}
func main() {
a := make(map[int]bool, 2)
a[1] = false
a[2] = false
a[3] = true
fmt.Println(a) //map[1:false 2:false 3:true]
fmt.Println(len(a)) //3
}
5.var结合make创建不指定大小
func main() {
var countryCapitalMap map[string]string
if countryCapitalMap == nil {
fmt.Println("a是nil") //a是nil
} else {
fmt.Println("a不是nil")
}
fmt.Println(countryCapitalMap) //map[]
fmt.Println(len(countryCapitalMap)) //0
countryCapitalMap = make(map[string]string)
if countryCapitalMap == nil {
fmt.Println("a是nil")
} else {
fmt.Println("a不是nil") //a不是nil
}
countryCapitalMap["France"] = "巴黎"
countryCapitalMap["Italy"] = "罗马"
countryCapitalMap["Japan"] = "东京"
countryCapitalMap["India "] = "新德里"
fmt.Println(countryCapitalMap) //map[France:巴黎 India :新德里 Italy:罗马 Japan:东京]
fmt.Println(len(countryCapitalMap)) //4
}
6.var结合make创建指定大小
func main() {
var countryCapitalMap map[string]string
if countryCapitalMap == nil {
fmt.Println("a是nil") //a是nil
} else {
fmt.Println("a不是nil")
}
fmt.Println(countryCapitalMap) //map[]
fmt.Println(len(countryCapitalMap)) //0
countryCapitalMap = make(map[string]string, 2)
if countryCapitalMap == nil {
fmt.Println("a是nil")
} else {
fmt.Println("a不是nil") //a不是nil
}
countryCapitalMap["France"] = "巴黎"
fmt.Println(countryCapitalMap)//map[France:巴黎]
fmt.Println(len(countryCapitalMap))//1
countryCapitalMap["Italy"] = "罗马"
countryCapitalMap["Japan"] = "东京"
countryCapitalMap["India "] = "新德里"
fmt.Println(countryCapitalMap) //map[France:巴黎 India :新德里 Italy:罗马 Japan:东京]
fmt.Println(len(countryCapitalMap)) //4
}
7.创建不初始化值
func main() {
a := map[int]bool{}
if a == nil {
fmt.Println("a是nil")
} else {
fmt.Println("a不是nil") //a不是nil
}
fmt.Println(a) //map[]
fmt.Println(len(a)) //0
//可以后续再添加值
a[3] = false
a[4] = true
fmt.Println(len(a)) //2
fmt.Println(a) //输出:map[3:false 4:true]
}
8.创建初始化值
func main() {
a := map[int]bool{
1: true,
2: false,
}
fmt.Println(len(a)) //2
//可以后续再添加值
a[3] = false
a[4] = true
fmt.Println(len(a)) //4
fmt.Println(a) //输出:map[1:true 2:false 3:false 4:true]
}