map, slice, chan创建

map引用类型

	MyMap := make(map[int]string, 20)//20可要可不要,没什么用
	MyMap[0] = "zs"
	MyMap[1] = "ls"
	fmt.Println(MyMap)//map[0:zs 1:ls]
	YouMap := MyMap
	YouMap[1] = "gg"
	fmt.Println(YouMap)//map[0:zs 1:gg]

	fmt.Println(MyMap)//map[0:zs 1:gg]
	fmt.Println(len(YouMap)) //2
	//fmt.Println(cap(YouMap)) //没有容量概念

new创建map

myMap := new(map[int]string)
fmt.Println(myMap)//&map[]

初始化map

	myMap := map[int]string{}
	myMap[0] = "zs"
	myMap[1] = "ls"
	fmt.Println(myMap)

---------------------------------
myMap := map[int]string{
		0: "zs",
		1: "ls",
	}
	fmt.Println(myMap)

初始化slice

	MySlice := []int{1, 2, 3}
	fmt.Println(MySlice)//[1,2,3]
	fmt.Println(len(MySlice))//3
	fmt.Println(cap(MySlice))//3
	MySlice = append(MySlice, 4)
	fmt.Println(MySlice)//[1,2,3,4]
	fmt.Println(len(MySlice))//4
	fmt.Println(cap(MySlice))//6  每次增大为原来的两倍

slice引用类型

	MySlice := make([]int, 3, 5)//若只有一个值,容量与长度相等
	MySlice = append(MySlice, []int{1, 2, 3}...)
	fmt.Println(MySlice)//[0 0 0 1 2 3]
	YouSlice := MSClice
	YouSlice[0] = 10
	fmt.Println(MySlice)//[10 0 0 1 2 3]
	fmt.Println(YouSlice)//[10 0 0 1 2 3]

初始化chan

//MyChan := make(chan int) 不能不设置容量
//MyChan := make(chan int,3,5)也不能设置两个值
MyChan := make(chan int, 3)
MyChan <- 10
MyChan <- 20
MyChan <- 30
fmt.Println(<-MyChan)//10
fmt.Println(<-MyChan)//20
fmt.Println(<-MyChan)//30
posted @ 2023-07-19 19:36  Bre-eZe  阅读(7)  评论(0)    收藏  举报