数组定义
数组是一个由固定长度的特定类型元素组成的。一个数组可以由零个或多个元素组成。每个数组元素可以通过下标(索引)来访问,索引【下标】范围从0开始至(数组长度-1)
数组声明
var array_name [元素数量]array_type
数组初始化
// 1. 使用初始化列表来设置数组元素的值
var numArray = [3]int{1, 2}
// 2. 根据初始值的个数自行推断数组的长度
var numArray = [...]int{1, 2}
// 3. 使用指定索引值的方式来初始化数组,未指定初始值的元素将用零值初始化
var numArray = [...]int{1: 1, 99: -1} // 数组长度100
可变长度数组
在数组字面值中,如果在数组的长度位置出现的是...
省略号,则表示数组的长度是根据初始化值的个数来计算。
package main
import "fmt"
func main() {
q := [...]int{1, 2, 3}
fmt.Printfln(q)
var cityArray = [...]string{"北京", "上海", "深圳"}
fmt.Printfln(cityArray)
fmt.Printf("type of cityArray: %T
", cityArray)
}
数组特点
-
数组创建完后长度就固定,不可以再追加元素
-
数组长度是数组类型的组成部分
-
数组是值类型,数组赋值或作为函数参数都是值拷贝
数组操作
数组元素访问
package main
import "fmt"
func main() {
a := [...]int{1,2,3}
fmt.Println(len(a)) // 数组长度
b := a[0]
ftm.Printf(b)
}
数组遍历
package main
import "fmt"
func main() {
var a = [...]string{"北京", "上海", "深圳"}
// 方法1:for 下标遍历
for i := 0; i < len(a); i++ {
fmt.Println(a[i])
}
// 方法2:for range 遍历
for index, value := range a {
fmt.Println(index, value)
}
}