首页 > Golang 阅读数:17

Go语言数组

数组是相同类型的一组数据构成的长度固定的序列,其中数据类型包含了基本数据类型、复合数据类型和自定义类型。数组中的每一项被称为数组的元素。数组名是数组的唯一标识符,数组的每一个元素都是没有名字的,只能通过索引下标(位置)进行访问。因为数组的内存是一段连续的存储区域,所以数组的检索速度是非常快的,但是数组也有一定的缺陷,就是定义后长度不能更改。

1、数组的语法

Go语言数组声明需要指定元素类型及元素个数,语法格式如下。

var 变量名 [数组长度]数据类型

以上为一维数组的定义方式,数组长度必须是整数且大于 0,未初始化的数组不是 nil,也就是说没有空数组(与切片不同)。

初始化数组语法格式如下。

var nums = [5]int{1, 2, 3, 4, 5}

初始化数组中 {} 中的元素个数不能大于 [] 中的数字。

如果忽略 [] 中的数字,不设置数组长度,Go语言会根据元素的个数来设置数组的长度。可以忽略声明中数组的长度并将其替换为。编译器会自动计算长度。语法格式如下。

var nums = [...]int{1, 2, 3, 4, 5}

以上两种初始化方式效果相同,虽然第二种没有设置数组的长度。

修改数组内容,语法格式如下。

nums[4] = 4

以上实例读取数组第 5 个元素。数组元素可以通过索引(位置)来读取(或者修改),索引从 0 开始,第 1 个元素索引为 0,第 2 个索引为 1,以此类推。

2、数组的长度

数组的长度是数组的一个内置常量,通过将数组作为参数传递给 len() 函数,可以获得数组的长度。忽略声明中数组的长度并将其替换为,编译器可以找到长度。接下来使用案例演示获取数组长度的方式。

【示例】获取数组长度。
package main
import "fmt"
func main(){
    a := [4]float64{67.7, 89.8, 21, 78}
    b := [...]int{2, 3, 5}
    fmt.Printf("数组 a 的长度为 %d,数组 b 的长度为 %d\n", len(a), len(b))
}
运行结果如下:

数组 a 的长度为 4,数组 b 的长度为 3

3、遍历数组

在数组中查找目标元素,需要进行遍历,在Go语言中数组的遍历方式如下所示。
package main
import "fmt"
func main(){
    a := [4]float64{67.7, 89.8, 21, 78}
    b := [...]int{2, 3, 5}
    //遍历数组方式1
    for i := 0; i < len(a); i++ {
        fmt.Print(a[i], "\t")
    }
    fmt.Println()
    //遍历数组方式2
    for _, value := range b{
        fmt.Print(value, "\t")
    }
}
运行结果如下:

67.7    89.8    21  78 
2   3   5