数组定义:var arr [n]type

n表示数组长度,type表示数组存放的类型,数组的长度是不能改变的。

1、先定义,后赋值

var arr [10]int

定义一个int类型的,长度是10的数组

arr[0] = 1
arr[1] = 10

上面是对数组的某一位进行赋值

2、定义赋值一起

arr :=[3]int{1,2,3}
arr2 :=[...]int{1,2,3}

arr2中的数组长度使用...,go语言会自动根据元素长度计算

3、多维数组

arrays :=[2][3]int{[3]int{1,2,3},[3]int{4,5,6}}


由于数组不能改变长度,如果我们在不知道长度的情况如何定义数组呢?我们需要动态数组,go里面叫做slice。

slice定义:var fslice []type

slice不需要写长度,除了长度外和数组定义是一样的。

1、定义时初始化

fslice := []int {1,2,3}

2、使用数组中的元素初始化

arr :=[10]int {1,2,3,4,5,6,7,8,9,10}
var fslice []int
fslice = arr[2:5]

fslice就获取到3,4,5。上面的2:5是数组索引2到索引4。

fslice = arr[:]

不写起始和终止的索引就代表是0到最长大小,也就是arr[0:10]

3、使用slice中的元素初始化

gslice = fslice[0:2]

4、append添加元素,返回一个添加完成后的slice

fslice := []int{1,2,3}
gslice := append(fslice,4)
fmt.Println(gslice)
fmt.Println(fslice)