定义一个数组
var 数组变量名 [元素数量]元素类型
var a [3]int
定义一个int数组 长度为 3
fmt.Println(a)
输出结果为 [0 0 0]
在声明数组时,如果没有对数组进行赋值 则会为该类型的默认值
int 类型为 0 string类型为 “”
在定义的时候赋值
var a = [3]int{1,2,3} //长度为三
其他的定义方式
var a =[...]int{1,2,3,4}
使用 …声明数组 程序会自动判断后面的元素,来确定数组的长度
var a = [...]int{1:1,3:9}
fmt.Println(a)
输出结果为 [0 1 0 9]
此方式是使用索引方式在声明的时候对元素赋值,没有被赋值的元素为默认值
长度为最大索引值
var a [3]int
a[0] =1
a[1] =2
a[2] =3
声明之后再给元素赋值
数组的特点
数组的长度是常量 所以数组的长度是不可变的
不同类型、不同长度的数组 不可以相互赋值
数组是值类型(拷贝传递)
数组的遍历
for 循环遍历
var a = [3]int{1,2,3}
for i := 0; i < len(a); i++ {
fmt.Println(a[i])
}
for range 遍历
var a = [3]int{1,2,3}
for i,v:= range a {
fmt.Println(i,":",v)
}
i 是下标 v 是元素
var a = [3]int{1,2,3}
for _,v:= range a {
fmt.Println(v)
}
如果不想要下标 可以用匿名变量接收
二维数组
声明
var a =[2][2]string{
{"河南","郑州"},
{"浙江","杭州"},
}
fmt.Println(a)
定义一个 两行两列的string数组
二维数组的遍历
for循环遍历
for i := 0; i < len(a); i++ {
for x := 0; x < len(a[i]); x++ {
fmt.Println(a[i][x])
}
}
for range遍历
for _, v := range a {
for _, x := range v {
fmt.Println(x)
}
}