golang_listen_7_数组

数组是同⼀类型的元素集合

Go中数组下标从0开始,因此⻓度为n的数组下标范围:[0,n-1]

整数数组中的元素默认初始化为0,字符串数组中的元素默认初始化为 ""

var a [3]int

数组初始化

func testArray1() {
    var a [5]float32
    a[0] = 200
    a[1] = 300
    fmt.Println(a)
}

func testArray2() {
    var a [5]int = [5]int{1, 2, 3, 4, 5}
    fmt.Println(a)
}

func testArray3() {
    a := [5]int{1, 3, 4, 5, 6}
    fmt.Println(a)
}

func testArray4() {
    a := [...]int{1, 2, 3, 4, 5, 5, 6} // 三个点代表不限制 数字
    fmt.Println(a)
}

func testArray5() {
    a := [5]int{1, 2, 3}
    fmt.Println(a)
}

func testArray6() {
    a := [5]int{3: 100, 4: 300} //设置索引的值
    fmt.Println(a)
}

func testArray7() {
    a := [5]int{3, 100, 4, 300}
    fmt.Println(a)

    var b [5]int
    b = a //类似 python中的 深copy
    b[2] = 30000
    fmt.Println(b)
}

func testArray8() {
    a := [5]int{3: 100, 4: 300}
    fmt.Printf("len(a)=%d", len(a))
}

func testArray9() {
    a := [5]int{3: 100, 4: 300}
    for i := 0; i < len(a); i++ {
        fmt.Printf("a[%d]=%d\n", i, a[i])
    }
}

func testArray10() {
    a := [5]int{3: 100, 4: 300}
    // var index,value int
    // for index,value :=range a
    for _, value := range a {
        fmt.Printf("%d\n", value)
    }
}

func testArray11() {
    var a [3][2]int //三个数组,每个数组里面是两个值
    a[0][0] = 10
    a[0][1] = 20
    a[1][0] = 10
    a[1][1] = 20
    a[2][0] = 30
    a[2][1] = 30
    for i := 0; i < len(a); i++ {
        for j := 0; j < len(a[i]); j++ {
            fmt.Printf("a[%d][%d]=%d", i, j, a[i][j])
            fmt.Printf(" ")
        }
        fmt.Println()
    }
    // ------------------------

    for i, val := range a {
        for j, var2 := range val {
            fmt.Printf("%d%d=d%d", i, j, var2)
        }
    }

}

func testArray12() {
    a := [3]int{10, 20, 30}
    b := a
    b[0] = 100
    fmt.Printf("%d ,,%d", a, b)
}

func testArray13() {
    var a int = 100
    b := a
    b = 300
    fmt.Printf("%d,,,%d", a, b)
}

func modify(a [3]int) {
    a[0] = 1000
}

func testArray14() {
    var a [3]int = [3]int{10, 20, 30}
    modify(a) //这个依然改不了 a 的值
    // a[0] = 20000000
    fmt.Println(a)
}
View Code

 

 

 

 

 

 

数组遍历

for i := 0; i < len(a); i++ { } //a、b是不同类型的数组,不能赋值

------------------

for index, val := range a { }

 

 

1. 求数组所有元素之和 

2. 找出数组中和为给定值的两个元素的下标,⽐如数组:[1,3,5,8,7],找出两个元素 之和等于8的下标分别是(0, 4)和(1,2)。

 

posted @ 2022-04-06 21:30  walkerpython  阅读(27)  评论(0编辑  收藏  举报