zoukankan      html  css  js  c++  java
  • go 构造切片slice

    定义切片
    make([]int, 5)  长度和容量均为5
    make([]int, 0, 5) 长度为0 容量为0
    切片
    slice2[3:5] 对slice2进行切片返回 第3 4 两个元素 不包含index=5这个元素
    ----------------------------------------------------------------------
    package main

    import "fmt"

    func main() {
        var z []int
        if z == nil {
            fmt.Println("is nil")
        } else {
            fmt.Println("not nil", z)
        }

        //按容量创建切片 并初始化数据为0
        slice1 := make([]int, 5)
        printSlice("slice1", slice1)

        //最大容量为5初始化长度为0
        slice2 := make([]int, 0, 5)
        printSlice("slice2", slice2)
        //容量为slice2 =5 长度为3
        slice3 := slice2[:3]
        printSlice("slice3", slice3)
        //append 追加数据后 超出容量5 增长至5*2=10 ,append后长度为6
        slice3 = append(slice3, 1)
        slice3 = append(slice3, 3)
        slice3 = append(slice3, 9)
        slice3 = append(slice3, 1)
        slice3 = append(slice3, 3,9,10)
        printSlice("slice3", slice3)

        slice4 := slice2[3:5]
        printSlice("slice4", slice4)

        //返回index=3-8 1 3 9 1 3 9
        slice5 := slice3[3:9]
        //slice3 进行切片,因容量是10 切片到index=9 返回3-9的元素 所以正确 slice3[3:11]会报错因为容量为10
        slice6 := slice3[3:10]
        printSlice("slice5", slice5)
        printSlice("slice5", slice6)
    }

    func printSlice(a string, x []int) {
        fmt.Println()
        fmt.Printf("%s ,len = %d,cap = %d,val = %v", a, len(x), cap(x), x)
    }
    ----------------------------------------------------------------------
    切片做为参数传递
     

    go语言开发交流qq群 857263711

    保持进步
    希望每个人都能找到自己喜欢的方式生活、工作。

     
  • 相关阅读:
    Centos 下oracle 11g 安装部署及手动建库过程
    MongoDB 存储引擎Wiredtiger原理剖析
    有关RDS上只读实例延时分析-同适用于自建MySQL主从延时分析判断
    windows 下my.ini的配置优化
    什么是purge操作
    linux内核调优参考
    通过第三方镜像仓库代理下载镜像
    微积分拾遗——链式法则
    Java中的RASP实现
    机器学习是什么
  • 原文地址:https://www.cnblogs.com/songhuan999999/p/11191836.html
Copyright © 2011-2022 走看看