• GO中的数组切片


    GO中的数组切片可以看做是功能更强大的数组,在append数据时,可以自动调整内存大小以适应数据实际大小,有些类似于C#中的List<T>。

    GO 中数组切片的“容量”与实际储存的大小可以不同,比如一个杯子容量是500ml,实际只装了200ml的水。

    数组切片的基本用法:

    fmt.Println("数组切片可以看做是一种比普通数组更强大的数组")
        //数组切片
        fmt.Println("数组切片:")
        fmt.Println("首先创建数组:")
        var aryVal []int = []int{1, 2, 3, 4, 5, 6, 7, 8}
        //fmt.Println("Arry = ", aryVal)
        //根据数组创建数组切片
        fmt.Println("根据数组创建数组切片[从 0 ~ 2]:")
        var aryClince []int = aryVal[:3]
        fmt.Println("aryClince = ", aryClince)
        var aryClince2 []int = aryVal[3:len(aryVal)]
        fmt.Println(aryClince2)
        //直接通过make函数床架数组切片
        fmt.Println("直接通过make函数床架数组切片:")
        var slicel []int = make([]int, 6)
        fmt.Println("函数make创建的数组切片默认将元素初始化为对应类型的默认值:")
        fmt.Println("slicel = ", slicel)
        for i, _ := range slicel {
            slicel[i] = i + 1
        }
        fmt.Println("对切片赋值后:")
        fmt.Println(slicel)
    
    
        fmt.Println("切片的储存能力和当前储存量可以不同")
        var slicel2 []int = make([]int, 12, 20)
        for i := 0; i <= 4; i++ {
            slicel2[i] = i + 1
        }
        fmt.Println("slicel2 = ", slicel2)
        fmt.Println("cap of slicel2(切片预留的储存能力) = ", cap(slicel2))
        fmt.Println("length of slicel2(切片当前储存量) = ", len(slicel2))
        //切片后动态追加数据  使用append函数追加数据
        var slicel4 []int = make([]int, 5, 15)
        for i := 0; i < len(slicel4); i++ {
            slicel4[i] = i + 1
        }
        fmt.Println("slicel4 = ", slicel4)
        //
        slicel4 = append(slicel4, 9, 0, 1, 2, 3)
        fmt.Println("Append datas :", slicel4)
        temslicel := []int{22, 3, 44, 55, 66, 77, 88}
        slicel4 = append(slicel4, temslicel...) //注:后面 ... 表示将切片打散为单个元素后进行插入
        fmt.Println("Appended slicel:", slicel4)
  • 相关阅读:
    C/C++产生随机数
    BNUOJ34973Liserious战队
    oracle ebs 12.20 安装成功其过程失败日记及总结(1)
    HDU 2544 最短路 SPFA 邻接表 模板
    GridView编辑删除操作
    Hibernate_10_继承的例子_单表
    String不变性
    Mac在结构quick cocos2d-x编译环境
    Hash散列算法 Time33算法
    南京地图南京全套的卫星地图下载 百度高清卫星地图包括道路、标签信息叠加
  • 原文地址:https://www.cnblogs.com/xtblog/p/5655821.html
Copyright © 2020-2023  润新知