← 返回首页
Go基础教程(十)
发表时间:2022-11-16 23:13:49
数组

数组是在程序中充当容器功能的数据类型,数组是一段固定长度的连续内存区域。

1.定义数组

定义数组的格式如下:

var 数组变量名 [元素数量]T

2.数组初始化

与java语言类似,数组的初始化也分为静态初始化和动态初始化。

1).动态初始化

package main

import (
    "fmt"
)

func main() {
    // 定义一个变量为 arr, 成员类型为 string, 大小为 4 的数组
    var arr [4]string

    // 赋值操作
    arr[0] = "北京"
    arr[1] = "上海"
    arr[2] = "广州"
    arr[3] = "深圳"

    fmt.Println(arr)
}

输出结果:

[北京 上海 广州 深圳]

2).静态初始化

package main

import (
    "fmt"
)

func main() {
    // 定义一个变量为 arr, 成员类型为 string, 大小为 4 的数组
    var arr = [4]string{"北京", "上海", "广州", "深圳"}
    fmt.Println(arr)
}

上面这种写法需要保证大括号内的元素数量与数组的大小一致。 但是,还可以将定义数组大小的操作交给编译器,让编译器在编译时,根据元素的个数来确定大小:

package main

import (
    "fmt"
)

func main() {
    // 定义一个变量为 arr, 成员类型为 string, 大小为 5 的数组
    var arr = [...]string{"北京", "上海", "广州", "深圳", "成都"}
    fmt.Println(arr)
}

3.遍历数组

与python语句类似,可以通过 for range 来遍历数组,代码如下:

package main

import (
    "fmt"
)

func main() {
    // 定义一个变量为 arr, 成员类型为 string, 大小为 5 的数组
    var arr = [...]string{"北京", "上海", "广州", "深圳", "成都"}

    //fmt.Println(arr)
    for index, v := range arr {
        fmt.Printf("index: %d, value: %s\n", index, v)
    }
        //获取数组长度
        fmt.Printf("数组长度:%d", len(arr))
}

运行结果:

index: 0, value: 北京
index: 1, value: 上海 
index: 2, value: 广州 
index: 3, value: 深圳 
index: 4, value: 成都 
数组长度:5       

小结: