栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > .Net

GoLang之map底层系列一(map初始化)

.Net 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

GoLang之map底层系列一(map初始化)

文章目录
  • GoLang之map底层系列一(map初始化)
    • 1.var创建不初始化值
    • 2.var创建初始化值
    • 3.make创建不指定大小
    • 4.make创建指定大小
    • 5.var结合make创建不指定大小
    • 6.var结合make创建指定大小
    • 7.创建不初始化值
    • 8.创建初始化值
    • 9.var创建不初始化值再集体赋值
    • 10.make创建不指定大小再集体赋值

GoLang之map底层系列一(map初始化) 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

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]
}
9.var创建不初始化值再集体赋值

10.make创建不指定大小再集体赋值

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1023481.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号