数组、切片、map

数组

概念

同一数据类型,固定长度的序列

定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//[长度]类型
var arr [2]int

//make创建
var a []int
a = make([]int,4)

//[长度]类型{元素1,元素2}
var arr = [2]int{1,2}
arr := [2]int{1,2}

//[不定长度]类型{元素1,元素2} 长度根据初始化时候的具体元素数量来定
var arr = [...]int{1,2}
arr := [...]int{1,2}

//设置key=>value
var arr = [...]int{1:1,0:2}
arr := [...]int{1:1,0:2}

切片

概念

切片是对数组的引用,数组长度不变,切片的长度是可变的

定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//make创建 make([]类型,长度,容量) 容量可选,可变
slice1 := make([]type,len,cap)
var slice1 []type = make([]type,len,cap)

//直接初始化
slice2 := []int {1,2}

//从数组中创建
//截取数组从startIndex,到endIndex-1的位置的元素
slice := arr[startIndex:endIndex]
//从startIndex到最后的元素
slice := arr[startIndex:]
//从开始到endIndex的元素
slice := arr[:endIndex]

map

概念

无序的key/value集合,所有的key类型是相同的,所有的value类型都是相同的

定义

1
2
3
4
5
6
7
8
9
10
11
12
//make创建
ages := make(map[string]int)

//创建并初始化
ages := make(map[string]int{
"alice" : 31,
"charlie": 32,
})

//声明并初始化
a := make(map[string]string,8) //8代表容量
a := make(map[string]string{"name":"aa","age":22})