zoukankan      html  css  js  c++  java
  • Go语言中的slice

    Go语言中的slice有点类似于Java中的ArrayList,但在使用上更加灵活,先通过下面一个小例子来体验一下如何通过一个已有的切片来产生一个新切片:

    func main()  {
        slice := []int{10,20,30,40,50}
        newSlice := slice[1:3]   // 通过一个slice生成一个新的slice ,两者在底层会共享一部分内存,这个1表示从上一个slice的索引为1的元素开始,
                            // 3表示取上一个slice的前3个
    for _,value := range(newSlice){ fmt.Println(value) } fmt.Println(cap(newSlice)) // 新的slice的容量,从旧slice的索引为1开始算,默认到旧slice的最后一个,所以此处新slice容量为4,
    // newSlice := slice[1:3:3] ,第3个能数也可以用来指定新slice的容量
    }

    输出:

    20
    30
    4

    注意:此时新产生的切片和旧切片正供享着同一个底层数组。只有当新产生的切片通过 append方法追加元素超出自身的容量时,才会新复制一个底层数组。

  • 相关阅读:
    Remove Element
    C++ 一些STL
    Two Pointers/hash/3Sum/4Sum类题目
    动态规划
    UVa 12657 双向链表
    并行运行环境
    多线程编程
    HTML XML CSS JS 迅速学习
    UVa 11988 数组模拟链表
    静态链表
  • 原文地址:https://www.cnblogs.com/hzhuxin/p/9224046.html
Copyright © 2011-2022 走看看