Go 语言笔记:数组
数组
数组,固定长度的特性类型的元素组成的序列,有零或多个元素。数组的长度是固定的,
Go
中较少使用。
数组的声明
数组可以使用
[len]Type
来声明,其中len
代表长度,Type
代表元素类型。
go
// 声明长度为 5 的数组,所有元素的值均为 0
var nums [5]int
// 给第一个元素赋值
nums[0] = 10
fmt.Println(nums) // [10 0 0 0 0]
也可以在声明时直接对数组进行初始化
go
var nums = [5]int{15}
fmt.Println(nums) // [15 0 0 0 0]
或者是直接使用短声明
go
nums := [5]int{20}
fmt.Println(nums) // [20 0 0 0 0]
当元素个数太多,也可以利用编译器,为我们计算数组的长度
go
nums :=[...]int{55, 20, 30, 50, 60, 80}
fmt.Println(len(nums)) // 6
通过指定索引为数组的元素赋值
go
nums := [5]int{2:30, 4:50}
fmt.Println(nums) // [0 0 30 0 50]
数组的长度是数组的一部分,两个不同长度的数组,是不同的类型,如 [5]int
和 [10]int
。
数组的长度
使用内置的
len
函数,可以返回指定数组的长度
go
nums :=[...]int{55, 20, 30, 50, 60, 80}
fmt.Println(len(nums)) // 6
数组是值类型
Go
语言中数组是值类型,而非引用类型,当把数组赋值给一个新的变量时,该变量是对原数组进行了一次拷贝,对新变量的值进行改变时,原数组的值不变。
go
nums := [5]int{10,20,30,40,50}
copy := nums
copy[1] = 90
fmt.Println(nums) // [10 20 30 40 50]
fmt.Println(copy) // [10 90 30 40 50]
数组的使用
循环可以获取数组的索引和索引对应的元素
go
nums := [5]int{10,20,30,40,50}
for index, value := range nums {
fmt.Printf("nums[%d] = %d\n", index, value)
}
// 打印结果
nums[0] = 10
nums[1] = 20
nums[2] = 30
nums[3] = 40
nums[4] = 50
// 忽略索引
for _, value := range nums {
}
多维数组
多维数组的声明类似一维数组
go
var arr [2][3]int
var arr [2][3]int{{0, 1, 2}, {1, 2, 3}}
arr := [2][3]int{{0, 1, 2}, {1, 2, 3}}