Go中的数组有多种方式:
No 1.
var a [5]int
a [0] = 200
a [1] = 300
上面代码中干了哪些事:
第一行: 声明了一个长度为5,类型为
int
的数组 第二行: 为数组中第一个index赋值,为200 第三行: 为数组中第二个index赋值,为300
输出结果:[ 200,300,0,0,0 ]
No 2.
var b [3]int = [3]int{10,20,30}
上面代码中干了哪些事:
声明了一个长度为3,类型为
int
的数组,并且为所有index赋值 这种方法声明的数组,= 号后也要写上和声明时一样的[ ]int
输出:[10,20,30]
No 3.(常用方法)
c := [3]int{10,20,30}
上面代码中干了哪些事:
使用自动推导,声明了一个长度为3,类型为
int
的数组,并且为所有index赋值
输出:[10,20,30]
No 4.
d := [...]int{10,20,30}
上面代码中干了哪些事:
[ ]号里的…代表不知道创建的数组长度为多 所以,你填入多少个值,那么数组长度就为长
No 5.
e := [3]int{10}
上面代码中干了哪些事:
创建了一个长度为3,类型为int的数组,并为其第一个index赋值10
输出:[10,0,0]
No 6.
f := [...]int{3:100,4:300}
上面代码中干了哪些事:
…上面讲过,如果你不知道你放入的数组长度为多少,那么就用…代替数值 3:100,是为数组index为3的位置赋值,为100 4:100,是为数组index为4的位置赋值,为300 由此得知,这个数组的长度为5
输出:[0,0,0,100,300]
上面介绍了数组的几种不同声明方式,下面讲讲常见的一些操作错误:
1.Go语言中,数组的下标(index),也叫索引,是从0开始的
2.想要拿到数组最后一位元素,就用数组长度-1
就能得到:len(arr)-1
3.一旦声明的数组的类型,就无法改变。数组声明为int类型,就只能存放int类型的值,无法存放int32,int64值
4.错误赋值方法:
a := [5]int {1,2,3,4,5}
var b [3]int
b = a
上面代码:数组类型相同,但长度不同,所以b是不能拷贝a的
var a [3]int = [3]int {1,2,3}
var b [3]string
b = a
上面代码,类型不同,长度相同,也是不能相互拷贝的