• 8. 数组


    【数组的声明】

    package main 
    
    import (
        "fmt"
    )
    
    func main() {
        var a[3] int
        var b[3] string
    
        fmt.Println(a)
        fmt.Println(b)
    }
    

    【数组的使用】

    package main 
    
    import (
        "fmt"
    )
    
    func main() {
        var a[3] int
        var b[3] string
    
        a[0] = 1
        a[1] = 2
        a[2] = 3
    
        b[0] = "aaa"
        b[1] = "bbb"
        b[2] = "ccc"
    
        fmt.Println(a)
        fmt.Println(b)
    }

    很简单的使用方法,注意这里Go语言不支持数组自动扩展,所以数组定义多大,就能使用多大,比如这里: a[3] = 4这样就是错误的,会报错:  invalid array index 3 (out of bounds for 3-element array)

    【初始化值】

    a := [3]int{1, 2, 3}
    b := [3]string{"aaa", "bbb", "ccc"}
    c := [...]int{4, 5, 6, 7, 8, 9, 10}

    最后一行可以不指定数组长度初始化,具体长度由初始化的值个数决定。

    【遍历数组】

    遍历数组常用的就是for循环了,但是Go语言提供了range来迭代数组:

    package main 
    
    import (
        "fmt"
    )
    
    func main() {
        str := [...]string{"a", "b", "c", "d"}
    
        for i := 0; i < len(str); i++ {
            fmt.Printf("%d: %s
    ", i, str[i])
        }
    
        for key, value := range str {
            fmt.Printf("%d: %s
    ", key, value)
        }
    
        fmt.Println(str)
    }
    

    len 可以计算数组长度

    【数组切片】

    切片是数组的一些功能封装,但是切片并不产生新的数据,切片相当于对现有数据的引用。

    package main 
    
    import (
        "fmt"
    )
    
    func main() {
        
        a := [...]int{1, 2, 3, 4, 5, 6}
        b := a[1:4]
    
        b[0] = 999
    
        fmt.Println(a)
        fmt.Println(b)
    }

    以上面这个例子为例,结果是:

    [1 999 3 4 5 6]
    [999 3 4]

    切片就很像是指针,他的所有操作,源数据都会被改变。

  • 相关阅读:
    51Nod 1007 正整数分组(01背包)
    二叉树层次遍历(以先序输入)
    HttpContext.Current.Request.Url
    SqlDataReader和SqlDataAdapter的区别
    DataSet和DataTable详解
    DataTable和DataSet什么区别
    Git 忽略
    hack速查表
    ie6常见css bug
    详说 IE hasLayout
  • 原文地址:https://www.cnblogs.com/hatsusakana/p/9816322.html
Copyright © 2020-2023  润新知