zoukankan      html  css  js  c++  java
  • 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]

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

  • 相关阅读:
    二叉树的建树,按层遍历,结点总数,页结点,深度以及三序非递归遍历二叉树,建立中序线索二叉树
    志愿者选拔(单调队列)
    重建二叉树(中后序求前序)
    New Year Table(几何)
    Hopscotch(细节)
    红黑树(中序二叉树)
    Linux-awk命令详解
    Python--常用模块
    Python--re模块
    Python--模块与包
  • 原文地址:https://www.cnblogs.com/hatsusakana/p/9816322.html
Copyright © 2011-2022 走看看