数组是在程序中充当容器功能的数据类型,数组是一段固定长度的连续内存区域。
1.定义数组
定义数组的格式如下:
var 数组变量名 [元素数量]T
2.数组初始化
与java语言类似,数组的初始化也分为静态初始化和动态初始化。
1).动态初始化
package main
import (
"fmt"
)
func main() {
// 定义一个变量为 arr, 成员类型为 string, 大小为 4 的数组
var arr [4]string
// 赋值操作
arr[0] = "北京"
arr[1] = "上海"
arr[2] = "广州"
arr[3] = "深圳"
fmt.Println(arr)
}
输出结果:
[北京 上海 广州 深圳]
2).静态初始化
package main
import (
"fmt"
)
func main() {
// 定义一个变量为 arr, 成员类型为 string, 大小为 4 的数组
var arr = [4]string{"北京", "上海", "广州", "深圳"}
fmt.Println(arr)
}
上面这种写法需要保证大括号内的元素数量与数组的大小一致。 但是,还可以将定义数组大小的操作交给编译器,让编译器在编译时,根据元素的个数来确定大小:
package main
import (
"fmt"
)
func main() {
// 定义一个变量为 arr, 成员类型为 string, 大小为 5 的数组
var arr = [...]string{"北京", "上海", "广州", "深圳", "成都"}
fmt.Println(arr)
}
3.遍历数组
与python语句类似,可以通过 for range 来遍历数组,代码如下:
package main
import (
"fmt"
)
func main() {
// 定义一个变量为 arr, 成员类型为 string, 大小为 5 的数组
var arr = [...]string{"北京", "上海", "广州", "深圳", "成都"}
//fmt.Println(arr)
for index, v := range arr {
fmt.Printf("index: %d, value: %s\n", index, v)
}
//获取数组长度
fmt.Printf("数组长度:%d", len(arr))
}
运行结果:
index: 0, value: 北京
index: 1, value: 上海
index: 2, value: 广州
index: 3, value: 深圳
index: 4, value: 成都
数组长度:5
小结: