Go Array、map、slice使用

go 数组使用

1
2
3
4
5
6
7
8
9
10
11
12
var arr2 [5]int
arr2[1] = 5 //数组声明以后可以直接赋值
fmt.Println(arr2)

arr := new([5]int) //&[0 0 0 0 0] 返回带地址的初始化值
fmt.Println(arr)

arr1 := [5]int{} // [0 0 0 0 0] 返回初始化的值
fmt.Println(arr1)

arr3 := [5]int{1,2,3}
fmt.Println(arr3)

go slice 使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
var s []int
//s[0] = 10 //不能未初始化赋值
s = make([]int,5)
s[0] = 10 //初始化以后才能赋值
fmt.Println(s)

s1 := make([]int,5) //make 第二个参数需要指定长度
s1[0] = 5 //通过make初始化以后就可以赋值了
fmt.Println(s1)

s2 := new([]int)
fmt.Println(s2) //指正地址
s3 := *s2
//s3[0] = 9 //new的时候 值未初始化 index不存在默认无法直接赋值
s3 = append(s3,5,5,6)
s3[0] = 9 //append以后 存在的index可以赋值
//s3[10] = 10 //不存在的index依旧不能赋值
fmt.Println(s3)

go map 使用

1
2
3
4
5
6
7
8
9
10
11
12
//声明赋值
var m map[int]int
//m[0] = 1 //未初始化不能赋值
m = make(map[int]int)
m[0] = 1
fmt.Println(m)

m1 := map[int]int{0:1,1:2,2:3}
fmt.Println(m1)

m2 := map[string]string{}
fmt.Println(m2)