Go-数组

数组定义

数组是一个由固定长度的特定类型元素组成的。一个数组可以由零个或多个元素组成。每个数组元素可以通过下标(索引)来访问,索引【下标】范围从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\n", 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)
        }
}