Go中的数组有多种方式:

    No 1.

    1. var a [5]int
    2. a [0] = 200
    3. a [1] = 300

    上面代码中干了哪些事:

    第一行: 声明了一个长度为5,类型为int的数组 第二行: 为数组中第一个index赋值,为200 第三行: 为数组中第二个index赋值,为300

    输出结果:
    [ 200,300,0,0,0 ]

    No 2.

    1. var b [3]int = [3]int{10,20,30}

    上面代码中干了哪些事:

    声明了一个长度为3,类型为int的数组,并且为所有index赋值 这种方法声明的数组,= 号后也要写上和声明时一样的[ ]int

    输出:
    [10,20,30]

    No 3.(常用方法)

    1. c := [3]int{10,20,30}

    上面代码中干了哪些事:

    使用自动推导,声明了一个长度为3,类型为int的数组,并且为所有index赋值

    输出:
    [10,20,30]

    No 4.

    1. d := [...]int{10,20,30}

    上面代码中干了哪些事:

    [ ]号里的…代表不知道创建的数组长度为多 所以,你填入多少个值,那么数组长度就为长

    No 5.

    1. e := [3]int{10}

    上面代码中干了哪些事:

    创建了一个长度为3,类型为int的数组,并为其第一个index赋值10

    输出:
    [10,0,0]

    No 6.

    1. f := [...]int{3:100,4:300}

    上面代码中干了哪些事:

    …上面讲过,如果你不知道你放入的数组长度为多少,那么就用…代替数值 3:100,是为数组index为3的位置赋值,为100 4:100,是为数组index为4的位置赋值,为300 由此得知,这个数组的长度为5

    输出:
    [0,0,0,100,300]


    上面介绍了数组的几种不同声明方式,下面讲讲常见的一些操作错误:

    1.Go语言中,数组的下标(index),也叫索引,是从0开始的

    2.想要拿到数组最后一位元素,就用数组长度-1就能得到:len(arr)-1

    3.一旦声明的数组的类型,就无法改变。数组声明为int类型,就只能存放int类型的值,无法存放int32,int64值

    4.错误赋值方法:

    1. a := [5]int {1,2,3,4,5}
    2. var b [3]int
    3. b = a

    上面代码:数组类型相同,但长度不同,所以b是不能拷贝a的

    1. var a [3]int = [3]int {1,2,3}
    2. var b [3]string
    3. b = a

    上面代码,类型不同,长度相同,也是不能相互拷贝的