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)

GO中的数组切片的更多相关文章

  1. go语言中的数组切片:特立独行的可变数组

    go语言中的数组切片:特立独行的可变数组 初看go语言中的slice,觉得是可变数组的一种很不错的实现,直接在语言语法的层面支持,操作方面比起java中的ArrayList方便了许多.但是在使用了一段 ...

  2. Go中的数组切片的使用总结

    代码示例 package main import "fmt" func main(){ fmt.Println("Hello, world") // 定义数组的 ...

  3. Python中ndarray数组切片问题a[-n -x:-y]

    先看看如下代码: >>a=np.arange(10)>>a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>a[-7:] array( ...

  4. Go语言中的数组与数组切片

    Go中的数组与C的数组一样,只是定义方法不同 c: int a[10][10] Go [10][10]int 定义并初始化 array1 := [5]int{1,2,3,4,5} 变量名 := [in ...

  5. Go语言中底层数组和切片的关系以及数组扩容规则

    Go语言中底层数组和切片的关系以及数组扩容规则 demo package main import ( "fmt" ) func main() { // 声明一个底层数组,长度为10 ...

  6. golang中不定参数与数组切片的区别

    package main import "fmt" func main() { myfunc1(, , , ) //传递不定数量的参数 myfunc2([], , , }) //传 ...

  7. 窥探Swift之数组安全索引与数组切片

    今天是元宵节,祝大家元宵节快乐!在Swift中的数组和字典中下标是非常常见的,数组可以通过索引下标进行元素的查询,字典可以通过键下标来获取相应的值.在使用数组时,一个常见的致命错误就是数组越界.如果在 ...

  8. go语言 类型:数组切片

    初看起来,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针.数组切片的数据结构可以抽象为以下3个变量: 1.一个指向原生数组的指针: 2.数组切片中的元素个数: 3.数组切 ...

  9. Shell中的数组及其相关操作

    http://blog.csdn.net/jerry_1126/article/details/52027539 Shell中数据类型不多,比如说字符串,数字类型,数组.数组是其中比较重要的一种,其重 ...

随机推荐

  1. web前段2017.6.8

    <body></body>background='图片路径'---表示背景图片图片:.jpg .png(透明图片) .gif(动态图)... 路径---绝对路径:相对于磁盘的路 ...

  2. Vijos 1001 谁拿了最多奖学金

    题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1 ...

  3. asp.net Mvc 动态创建Controller

    有这么个需求,Urls如下: http://localhost:52804 http://localhost:52804/home/test http://localhost:52804/test1 ...

  4. Java基础语法<九> 接口与内部类

    1 接口  interface implement 接口的所有方法自动地属于public.因此,在接口中声明方法时,不必提供关键字public.   接口可以包含多个方法,接口中可以定义常量.接口中的 ...

  5. CentOS7的网卡启动不起来的问题

    这个问题在刚学Linux遇到的,centOS7的网卡启动不起来,导致建不了集群.如下图没有ifconf-env33网卡的IP 还有下面这个图>>> 如果你遇到了,呵呵呵,迷之微笑. ...

  6. 如何删除svn标签

    SVN是Subversion的简称,是一个开放源代码的版本控制系统,对于多人共同开发同一个项目非常有用,但有一点比较让人头疼,那就是项目移植的时候,原来的文件夹带有很多可恶的svn标签,使其不能add ...

  7. C++学习(八)入门篇——复合类型

    数组(需要声明以下三点): (1)存储在每个元素中值的类型 (2)数组名 (3)数组中的元素数 声明数组的通用格式如下: typeName arrayName[arraySize];arraySize ...

  8. 初探JavaScript的截图实现

    最近参与了网易炉石盒子的相关页面开发,在做卡组分享页(地址:炉石盒子卡组分享),有个需求:用户可以把这个卡组以图片的形式分享给好友.最初的的做法是使用服务器把该页面转换成图片,然后把图片地址返回给前端 ...

  9. 一份关于npm的新手指南

    Node.js使得在服务器端使用JavaScript编写应用程序成为可能.它是基于V8Javascript运行时并且使用C++编写的,所以它的速度很快.最初,它旨在作为应用程序的服务器环境,但是开发人 ...

  10. C# 代码规范和质量检查工具 StyleCop.Analyzers

    简介 原来一直用 ReSharper 来进行代码质量检查,不过毕竟是收费的,所以想找个免费的可以推广给公司的同事也一起用.搜索了一下,找到了StyleCop,但是我在 VS 2015里安装 Style ...