Contents
2.1. 数组¶
数组是一段固定长度的连续内存区域。 在Go语言中,数组从声明时就确定,使用时可以修改数组成员,但是数组大小不可变化。
在Go语言中,可以定义一维数组或者多维数组。
一维数组声明以及初始化常见方式如下:
var arrAge = [5]int{18, 20, 15, 22, 16}
var arrName = [5]string{3: "Chris", 4: "Ron"} //指定索引位置初始化
// {"","","","Chris","Ron"}
var arrCount = [4]int{500, 2: 100} //指定索引位置初始化 {500,0,100,0}
var arrLazy = [...]int{5, 6, 7, 8, 22} //数组长度初始化时根据元素多少确定
var arrPack = [...]int{10, 5: 100} //指定索引位置初始化,数组长度与此有关 {10,0,0,0,0,100}
var arrRoom [20]int
var arrBed = new([20]int)
2.1.1. 声明数组¶
数组的写法如下:
var 数组变量名 [元素数量]T
其中
数组变量名:数组声明及使用时的变量名。
元素数量:数组的元素数量。可以是一个表达式,但最终通过编译期计算的结果必须是整型数值。也就是说,元素数量不能含有到运行时才能确认大小的数值。
T可以是任意基本类型,包括T为数组本身。但类型为数组本身时,可以实现多维数组。
声明数组的例子
package main
import "fmt"
func main() {
var team [3]string
team[0] = "hujianli1"
team[1] = "hujianli2"
team[2] = "hujianli3"
fmt.Println(team)
}
//[hujianli1 hujianli2 hujianli3]
2.1.2. 初始化数组,可以在声明时直接进行初始化¶
var name_list = [3]string{"xiaojian01","xiaojian02","xiaojian03"}
fmt.Printf("%s--%s--%s",name_list[0],name_list[1],name_list[2])
//xiaojian01--xiaojian02--xiaojian03
// "..."表示让编译器确定数组大小
var array_list = [...]string{"var1","var2","var3","var4"}
fmt.Println(array_list[0]) //var1
fmt.Println(array_list[1]) //var2
fmt.Println(array_list[2])
fmt.Println(array_list[3])
2.1.3. 使用for循环遍历数组,两种方式¶
访问每一个数组元素
package main
import "fmt"
var arrAge = [5]int{12, 13, 14, 15, 16}
var arrLazy = [...]int{22, 23, 24, 25, 26}
var arrKeyValue = [5]string{3: "hujian", 4: "xiaojian"}
func main() {
// 遍历方法1
for _, i2 := range arrAge {
fmt.Println(i2)
}
fmt.Println("----------------------------")
// 遍历方法2
for i := 0; i < len(arrAge); i++ {
fmt.Println(arrAge[i])
}
}