zoukankan      html  css  js  c++  java
  • [GO]切片

    比如这里要对一个数组进行切片

    package main

    import "fmt"

    func main() {
      

      array := [...]int{10, 20, 30, 0, 0}   //三个点也可以不写
      slice := array[0:3:5]
      fmt.Println("slice = ", slice)
      fmt.Println("len = ", len(slice))
      fmt.Println("cap = ", cap(slice))


    }

    这里slice将会从array的第0个元素开始取,取到下标为3的元素,整个切片的容量为5-0=5个,长度为3-0=3个

    结果为:

    slice =  [10 20 30]
    len =  3  //这里打印的是长度
    cap =  5  //这里打印的是容量

     这里可以看得出来 ,数组与切片最大的区别就是在方括号里有没有固定长度,如果有那么这是一个数组,没有的话那就是一个切片

    package main
    
    import "fmt"
    
    func main()  {
        a := [5]int{}      //这种方式最常用,为自动推导类型
        fmt.Printf("a len = %d, cap = %d
     ", len(a), cap(a))
    
        b := make([]int, 4, 4)  //使用make函数进行切片的创建,make(type, 长度,容量)
        fmt.Printf("b make len = %d, cap = %d
     ", len(b), cap(b))
    
        c := make([]int, 3)    //使用make函数,如果没有指定容量,那么它的默认值就跟长度相同
        fmt.Printf("c make len = %d, cap = %d
     ", len(c), cap(c))
    }

     也有以下的情况:

    a := array[:5]  //从下标为0的元素开始取,取到第5个,长度为5,容量也为5
    a := array[3:] //从下标为3的元素开始取,取到最后一个,长度与容量相同
  • 相关阅读:
    课程笔记:——Javascript 中的预解释1
    我的博客园开通了~
    scheduling algorithm
    jQuery实现全选,全不选,反选
    jQuery实现表格选中行变色
    程序员永远的鸡血
    大家好,欢迎来到我的博客,我们一起成长,见证奇迹!
    存储过程和触发器优缺点分析
    ECStore去掉Index.php的方法
    C# 编码与解码
  • 原文地址:https://www.cnblogs.com/baylorqu/p/9581708.html
Copyright © 2011-2022 走看看