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

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

     
  • 相关阅读:
    数据库锁表处理汇总
    2021,顺其自然
    NetCore中跨域策略的一个坑
    Furion框架亮点之-动态WebAPI
    sql中where in的数量限制
    动态规划学习笔记
    用Go编写Web应用程序
    Asp.net Core AutoFac根据程序集实现依赖注入
    Linux+Docker+Gitee+Jenkins自动化部署.NET Core服务
    CentOS8.0安装Nacos
  • 原文地址:https://www.cnblogs.com/songhuan999999/p/11191836.html
Copyright © 2011-2022 走看看