golang基础⼩记(6)——数组:定义、初始化、遍历
Array数组
定义
数组是同⼀种数据类型元素的集合,是值类型。 在Go语⾔中,数组声明时必须指定元素类型和长度。使⽤时只可以修改元素值,不可修改长度。不同长度或元素类型的数组属于不同的类型。
一维数组的定义和初始化var a1 [3]bool// 定义了元素类型是bool,长度为3的数组
var a2 [4]bool
// 输出数组类型,可见数组类型由元素类型和长度共同决定
fmt.Printf("%T %T", a1, a2)// [3]bool [4]bool
⼀维数组初始化
1. 直接声明可以将元素默认初始化为对应类型的零值。
var a1 [3]bool
fmt.Println(a1)// [false false false]
2. 使⽤初始化列表来设置元素值,如果列表元素个数少于数组长度,则超出部分初始化为零值。
var a3 =[3]int{1,2,3}
fmt.Println(a3)// [1 2 3]
var a4 =[5]int{1,2,3}
fmt.Println(a4)// [1 2 3 0 0]
3. 利⽤初始化列表来决定数组长度,编译器会根据初始化列表中元素个数来推断数组长度。
var a5 =[...]int{1,2,3}
fmt.Printf("%T\n", a5)// [3]int
4. 初始化指定索引位置,未指定的元素初始化为零值
var a6 =[5]int{2:3,4:5}
fmt.Println(a6)// [0 0 3 0 5]
⼀维数组遍历
1. 索引遍历
var a7 =[...]int{5,4,3,2,1}
for i :=0; i <len(a7); i++{
fmt.Printf("%d ", a7[i])
}// 5 4 3 2 1
2. for range 遍历
var a7 =[...]int{5,4,3,2,1}
for_, v :=range a7 {
fmt.Printf("%d ", v)
}// 5 4 3 2 1
⼆维数组
初始化⽅式与⼀维数组类似。
1. 直接声明时元素默认初始化为零值
var a8 [3][2]int
fmt.Println(a8)// [[0 0] [0 0] [0 0]]
2. 使⽤初始化列表
var a9 =[3][2]int{
{1,2},
{3,4},
{5,6},
}
fmt.Println(a9)// [[1 2] [3 4] [5 6]]
初始化列表元素个数不够时,多出部分初始化为零值
var a10 =[3][2]int{
{1,2},
{3},
}
fmt.Println(a10)// [[1 2] [3 0] [0 0]]
3. 利⽤初始化列表决定第⼀层长度。注意只能省略第⼀层长度
var a11 =[...][2]int{
{1,2},
{3},
{5,6},
}
fmt.Printf("%T\n", a11)// [3][2]int
fmt.Println(a11)// [[1 2] [3 0] [5 6]]
⼆维数组的遍历同⼀维数组类似,只是需要两层 for 循环。
可从⼆维数组类推到多维数组。
[n]*T表⽰指针数组,*[n]T表⽰数组指针

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。