GO语言数组

// 数组是长度固定的数据类型,必须存储一段相同类型的元素,而且这些元素是连续的。
// 我们这里强调固定长度,可以说这是和切片最明显的区别。
package main

import "fmt"

func main() {
    // 声明数组,数组名+[数组长度]数组类型,不指定数组值默认为0
    var arr [5]int
    fmt.Println(arr)  // [0 0 0 0 0]

    // 指定数组值和长度
    arr1 := [5]int{1, 2, 3, 4, 5}
    fmt.Println(arr1)  // [1 2 3 4 5]

    // 指定数组值,系统自动判断长度
    arr2 := [...]int{5, 6, 7, 8}  //[5 6 7 8]
    fmt.Println(arr2)

    // 指定指定位置的值,其余为默认值
    arr3 := [6]int{2:4, 4:8}
    fmt.Println(arr3)  //[0 0 4 0 8 0]
}
package main

import "fmt"

func main() {
    // 按索引取值
    arr := [5]int{1, 2, 3, 4, 5}
    fmt.Println(arr[1]) // 2

    // 修改数组
    arr[1] = 8
    fmt.Println(arr)   // [1 8 3 4 5]
    // range
    for i, v := range arr {
        fmt.Printf("索引:%d, 值:%d\n", i, v)
    }

    // 指针数组, 不指定内存空间为nil,只有分配了内存空间的才可以赋值
    arr1 := [5]*int{1: new(int)}
    *arr1[1] = 1
    fmt.Println(arr1, *arr1[1])
}

你可能感兴趣的:(GO语言数组)