跳转至

Go语言Array

在Go语言中,数组(Array)是一种固定长度的数据结构,用于存储具有相同数据类型的元素序列。数组的长度是数组类型的一部分,因此在声明数组时必须指定其长度。Go语言的数组具有以下特点:

1. 声明数组

在Go语言中,声明数组的基本语法如下:

var arrayName [length]dataType

说明

  • arrayName 是数组的名称。
  • length 是数组的长度,必须是一个常量表达式(即在编译时可以确定的值)。
  • dataType 是数组存储的元素类型,可以是任何有效的数据类型,包括基本类型和结构体等。

示例

package main

import "fmt"

func main() {
    // 声明一个长度为5的整数数组
    var numbers [5]int
    fmt.Println("Empty Array:", numbers)

    // 声明并初始化一个整数数组
    primes := [5]int{2, 3, 5, 7, 11}
    fmt.Println("Primes Array:", primes)

    // 声明并初始化一个字符串数组
    fruits := [3]string{"Apple", "Banana", "Cherry"}
    fmt.Println("Fruits Array:", fruits)

    // 声明并初始化一个布尔数组
    flags := [4]bool{true, false, true, false}
    fmt.Println("Flags Array:", flags)
}

2. 访问数组元素

可以使用索引(从0开始)访问数组中的元素。例如,访问数组 arrayName 的第 i 个元素,语法为 arrayName[i]

package main

import "fmt"

func main() {
    primes := [5]int{2, 3, 5, 7, 11}

    fmt.Println("First prime:", primes[0])
    fmt.Println("Third prime:", primes[2])

    // 修改数组元素
    primes[1] = 13
    fmt.Println("Modified primes:", primes)
}

3. 数组长度

数组的长度是固定的,一旦定义,无法更改。在声明时指定的长度决定了数组可以存储的元素个数。

4. 遍历数组

可以使用 for 循环和数组的长度来遍历数组的所有元素。

package main

import "fmt"

func main() {
    numbers := [5]int{1, 2, 3, 4, 5}

    // 使用for循环遍历数组
    for i := 0; i < len(numbers); i++ {
        fmt.Println("Element:", numbers[i])
    }

    // 使用range关键字遍历数组
    for index, value := range numbers {
        fmt.Printf("Index: %d, Value: %d\n", index, value)
    }
}

5. 注意事项

  • Go语言中数组的长度必须是常量,不能是变量或者动态计算的表达式。
  • 数组是值类型,在传递给函数时会复制整个数组。如果想在函数中修改数组内容,可以传递数组的指针。
  • 数组的元素类型可以是任何合法的数据类型,包括结构体和其他数组类型。

6. 零值

在Go语言中,如果声明了一个数组但没有初始化它,数组的每个元素将被初始化为其类型的零值。对于数值类型,零值是0;对于字符串类型,零值是空字符串;对于布尔类型,零值是false。

package main

import "fmt"

func main() {
    var numbers [5]int
    fmt.Println("Zero Value Array:", numbers)
}

以上是关于Go语言数组的基本概念、声明、初始化、访问和遍历方法。数组在Go语言中是一种简单但十分有用的数据结构,常用于需要固定大小且类型明确的数据存储场景。

评论