Go语言数组和其他语言区别有点大,Go语言规定了数组容量,其他并且在日常开发中不推荐使用,很少用使用,因为数组的长度是固定的,推荐使用切片,切片是数组的变种,切片长度是可以变的,我们下期再讲切片,我们现在讲讲数组,我们先来定义一个数组:
var arr1 [5] int //定义了一个长度(容量)为5,数组内容元素为int类型
var arr2 = [5]int{} //定义了一个长度(容量)为5,数组内容元素为int类型
[]里定义数组容量,{}里初始化数组元素,数组元素个数不能大于数组容量
var arr3 = [5]int{1,2,3,4,5} //给这个数组初始化:
还可以定义并初始化一个不定长度的数组并让元素的个数来决定数组长度:
var arr4 := [...]int{1,2,3,4,5}
通过数组下标访问数组元素:
var num1 = arr4[0]; //1
fmt.Println(num1);
修改第一个元素:
arr4[0] =9 ;
fmt.Println(arr4); //[9 2 3 4 5]
第5篇讲函数的文章我们用了for循环遍历了字符串,这次我们来遍历数组:
for i,j := range arr4{
fmt.Printf("i为:%d,j为:%d;",i,j); //i为:0,j为:9;i为:1,j为:2;i为:2,j为:3;i为:3,j为:4;i为:4,j为:5;
}
二维数组
arr5 := [2][4]int{{1, 2, 3, 4 }, {5, 6, 7, 8}} //外层两个数组,每个数组4个元素
二维数组元素可以比定义的容量少,剩余的会被初始化为0,初始化的值取决于数组元素的数据类型:
arr6 := [2][4]int{{1, 2, 3}, {5, 6, 7}};
fmt.Println(arr6); //输出[[1 2 3 0] [5 6 7 0]]
一维的数组也同理,可以初始化一半的容量的数组
arr7 := [4]int{5, 6}; //外层两个数组,每个数组4个元素
fmt.Println(arr7); //输出[5 6 0 0]