Go基础_1_12 arr-1

Tutorial: Go初级 Category: Go Published: 2026-04-07 13:58:26 Views: 21 Likes: 0 Comments: 0
package main

import "fmt"

func main() {
    /*
        数据类型:
            基本类型:整数,浮点,布尔,字符串
            复合类型:array,slice,map,struct,pointer,function,channel。。。

        数组:
            1.概念:存储一组相同数据类型的数据结构
                    理解为容器,存储一组数据
            2.语法:
                    var 数组名 [长度] 数据类型
                    var 数组名 = [长度] 数据类型{元素1,元素2.。。}
                    数组名 := [...]数据类型{元素。。。}

            3.通过下标访问
                下标,也叫索引:index,
                默认从0开始的整数,直到长度减1
                数组名[index]
                    赋值
                    取值

                不能越界:[0,长度-1]

            4.长度和容量:go语言的内置函数
                len(array/map/slice/string),长度
                cap(),容量
    */

    var num1 int
    num1 = 100
    num1 = 200
    fmt.Println(num1)         // 200
    fmt.Printf("%p\n", &num1) // 0xc0000140a8

    // step1:创建数组
    var arr1 [4]int
    fmt.Printf("%p\n", &arr1) // 0xc000010200
    // step2:数组的访问
    arr1[0] = 1
    arr1[1] = 2
    arr1[2] = 3
    arr1[3] = 4
    fmt.Println(arr1[0]) // 打印第一个数值 1
    fmt.Println(arr1[2]) // 打印第三个数值 3
    //fmt.Println(arr1[4]) //invalid array index 4 (out of bounds for 4-element array)

    fmt.Println("数组的长度:", len(arr1)) // 容器中实际存储的数据量 4
    fmt.Println("数组的容量:", cap(arr1)) // 容器中能够存储的最大的数量 4
    // 因为数组定长,长度和容量相同
    arr1[0] = 100
    fmt.Println(arr1[0]) // 100

    // 数组的其他创建方式
    var a [4]int   // 同 var a= [4] int
    fmt.Println(a) // [0 0 0 0]

    var b = [4]int{1, 2, 3, 4}
    fmt.Println(b) // [1 2 3 4]

    var c = [5]int{1, 2, 4}
    fmt.Println(c) // [1 2 4 0 0]

    var d = [5]int{1: 1, 3: 2}
    fmt.Println(d) // [0 1 0 2 0]

    var e = [5]string{"rose", "王二狗", "ruby"}
    fmt.Println(e) // [rose 王二狗 ruby  ]

    f := [...]int{1, 2, 3, 4, 5}
    fmt.Println(f)      // [1 2 3 4 5]
    fmt.Println(len(f)) // 5
    g := [...]int{1: 3, 6: 5}
    fmt.Println(g)      // [0 3 0 0 0 0 5]
    fmt.Println(len(g)) // 7
}