定义切片
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

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

 

go 构造切片slice的更多相关文章

  1. go语言之---数组(array)和切片(slice)

    一.数组 1.什么是数组? 1.数组是一系列同一类型数据的集合 2.数组中包含的每个数据被称为数组元素 3.一个数组中包含的元素个数成为数组长度 4.数组的长度是固定的 5.一个数组可以由零个或者多个 ...

  2. go 数组(array)、切片(slice)、map、结构体(struct)

    一 数组(array) go语言中的数组是固定长度的.使用前必须指定数组长度. go语言中数组是值类型.如果将数组赋值给另一个数组或者方法中参数使用都是复制一份,方法中使用可以使用指针传递地址. 声明 ...

  3. golang切片slice

    切片slice是引用类型 len()函数获取元素的个数 cap()获取数组的容量 1.申明方式 (1)var a []int 与数组不同的是他不申明长度(2)s2 := make([]int, 3, ...

  4. 在python&numpy中切片(slice)

     在python&numpy中切片(slice) 上文说到了,词频的统计在数据挖掘中使用的频率很高,而切片的操作同样是如此.在从文本文件或数据库中读取数据后,需要对数据进行预处理的操作.此时就 ...

  5. Golang 入门 : 切片(slice)

    切片(slice)是 Golang 中一种比较特殊的数据结构,这种数据结构更便于使用和管理数据集合.切片是围绕动态数组的概念构建的,可以按需自动增长和缩小.切片的动态增长是通过内置函数 append( ...

  6. Go 灵活多变的切片Slice

    我们知道数组定义好之后其长度就无法再修改,但是,在实际开发过程中,有时候我们并不知道需要多大的数组,我们期望数组的长度是可变的, 在 Go 中有一种数据结构切片(Slice) 解决了这个问题,它是可变 ...

  7. 7 切片slice

    include 切片 切片的日常用法 切片slice 其本身并不是数组,它指向底层的数组 作为变长数组的替代方案,可以关联底层数组的局部或者 为引用类型. 可以直接创建或从底层数组获取生成. 使用le ...

  8. go递归函数如何传递数组切片slice

    数组切片slice这个东西看起来很美好,真正用起来会发现有诸多的不爽. 第一,数组.数组切片混淆不清,使用方式完全一样,有时候一些特性又完全不一样,搞不清原理很容易误使用. 第二,数组切片的appen ...

  9. [PY3]——内置数据结构(9)——线性结构与切片/命名切片slice()

    线性结构的总结 列表list  元组tuple  字符串str  bytes  bytearray的共同点: 都是顺序存储.顺序访问的: 都是可迭代对象: 都可以通过索引访问 线性结构的特征: 可迭代 ...

随机推荐

  1. C语言应用--数据类型定制一定义和引用

    目前,定制正在变的越来越普遍,定制服务.定制衣服.甚至使用的键盘都是定制了.在C语言中虽然也包括了整型.字符型和浮点型等基本类型,也有基本的组合数据类型数组.但是这些类型都是针对某一种特定类型时应用没 ...

  2. 使用tmate快速分享你的终端会话

    tmate 的意思是 teammates,它是 tmux 的一个分支,并且使用相同的配置信息(例如快捷键配置,配色方案等).它是一个终端多路复用器,同时具有即时分享终端的能力.它允许在单个屏幕中创建并 ...

  3. Restful API 架构与设计参考原则

    1. 什么是RESTREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状态转移. 它首次出现在2000年Roy Fielding的博 ...

  4. sql server management studio 连接时指定非默认端口 ,port

  5. oracle中的trigger

    https://blog.csdn.net/indexman/article/details/8023740/ https://www.cnblogs.com/sharpest/p/7764660.h ...

  6. celery的介绍和在爬虫的中使用

    https://mp.weixin.qq.com/s/FzvZHQpF5mhV9t_HBzlcwg

  7. 原生JavaScript实现函数的防抖和节流

    原生JavaScript实现函数的防抖和节流 参考:https://www.jianshu.com/p/c8b86b09daf0 想详细了解的直接戳上面链接了,讲得非常清楚.下面只给代码和我自己写的注 ...

  8. python 设计模式之模板方法模式

    1.模板方法模式定义 模板模式定义如下:定义一个操作中的算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构即可重新定义该算法的某些特定的步骤.子类实现的具体方法叫作基本方法,实现对 ...

  9. 终极解决办法rvct Cannot obtain license for Compiler (feature compiler) with license version >= 3.1

    参考:https://blog.csdn.net/nic_r/article/details/7458038 ARM C/C++ Compiler, RVCT4. [Build ] armcc : e ...

  10. PAT 甲级 1031 Hello World for U (20 分)(一开始没看懂题意)

    1031 Hello World for U (20 分)   Given any string of N (≥) characters, you are asked to form the char ...