美文网首页
06-go数组

06-go数组

作者: 一如既往wfqwfq | 来源:发表于2020-04-29 21:09 被阅读0次

    1、go数组(array)概念

    数组是一种长度固定,数据类型相同的一种集合。

    2、数组声明

    var 数组变量名 [数组长度]数据类型
    
    var s [5]string  // 声明一个长度为5,数据类型为string的数组s
    var m [10]int  //声明一个长度为10,数据类型为int的数组m
    

    3、数组初始化

    指定数组长度,不指定数组初始化列表,由编译器根据数据类型设置默认值

    var s [3]string    // ["" "" ""]
    var m [3]int       //[0 0 0]
    var n [3]float     //[0 0 0]
    var f [3]false     //[false false false]
    

    指定数组长度,并指定数组初始化列表

    var m = [3]int{1, 2, 3}    // [1 2 3]
    

    不指定数组长度,指定数组初始化列表,数组长度由编译器根据初始化列表长度推导

    var m = [...]int{1, 2, 3, 4}    // 数组长度为4
    

    根据指定索引值来初始化数组

    func main() {
        a := [...]int{1: 1, 3: 5}
        fmt.Println(a)                  // [0 1 0 5]
        fmt.Printf("type of a:%T\n", a) //type of a:[4]int
    }
    

    4、数组是值类型

    go语言中数组是值类型,在赋值或者传参的时候会复制整个数组,因此改变副本的值,不会改变自身的值。

    func modifyArray(arr [3]int)  {
        arr[2] = 10
    }
    
    func main() {
        arr := [3]int{1, 2, 3}
        modifyArray(arr)
        fmt.Println(arr[2]) // 打印结果:3,说明数组是值类型。函数中改变的是副本的值,而不是本身的值。
    }
    

    5、数组遍历

    数组遍历有两种方法,一种是索引遍历,一种是for range遍历

    func main() {
        arr := [5]int{1, 2, 3, 4, 5}
        // 索引遍历
        for i := 0; i < len(arr); i++ {
            fmt.Println(arr[i])
        }
        // for range遍历
        for index, value := range arr{
            // index表示下标
            fmt.Println(index, ":", value)
        }
    }
    

    相关文章

      网友评论

          本文标题:06-go数组

          本文链接:https://www.haomeiwen.com/subject/qotowhtx.html