前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Golang语言社区-【基础知识】切片

Golang语言社区-【基础知识】切片

作者头像
李海彬
发布2018-03-22 10:48:48
6960
发布2018-03-22 10:48:48
举报
文章被收录于专栏:Golang语言社区

Go编程切片是一种抽象了Go编程数组。由于Go编程数组允许您定义的变量,可容纳同类的几个数据项类型,但它不提供任何内置的方法来动态地增加它的大小或得到一个子数组自身。切片覆盖这一限制。它提供了数组所需的多种效用函数,被广泛应用在Go编程。

定义切片

要定义一个切片,你可以声明它作为一个数组时,不需要指定大小或使用make函数来创建。

代码语言:javascript
复制
var numbers []int /* a slice of unspecified size */
/* numbers == []int{0,0,0,0,0}*/
numbers = make([]int,5,5) /* a slice of length 5 and capacity 5*/

len() 和 cap() 函数

由于切片是一种抽象数组。它实际上使用数组作为底层structure.len()函数返回的元素呈现在cap()函数返回切片作为多少元素,它可以容纳的容量的切片。以下为例子来解释片的使用:

当上述代码被编译和执行时,它产生了以下结果:

代码语言:javascript
复制
len=3 cap=5 slice=[0 0 0]

Nil 切片

如果一个切片,没有输入默认声明,它被初始化为为nil。其长度和容量都为零。下面是一个例子:

子切片

切片允许设置下限和上限进行指定,以得到它使用的子片[下限:上限]。下面是一个例子:

当上述代码被编译和执行时,它产生了以下结果:

代码语言:javascript
复制
len=9 cap=9 slice=[0 1 2 3 4 5 6 7 8]
numbers == [0 1 2 3 4 5 6 7 8]
numbers[1:4] == [1 2 3]
numbers[:3] == [0 1 2]
numbers[4:] == [4 5 6 7 8]
len=0 cap=5 slice=[]
len=2 cap=9 slice=[0 1]
len=3 cap=7 slice=[2 3 4]

append() 和 copy() 函数

Slice允许增加使用切片的append()函数。使用copy()函数,源切片的内容复制到目标切片。下面是一个例子:

当上述代码被编译和执行时,它产生了以下结果:

代码语言:javascript
复制
len=0 cap=0 slice=[]
len=1 cap=2 slice=[0]
len=2 cap=2 slice=[0 1]
len=5 cap=8 slice=[0 1 2 3 4]
len=5 cap=16 slice=[0 1 2 3 4]
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-06-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Golang语言社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义切片
  • len() 和 cap() 函数
  • Nil 切片
  • 子切片
  • append() 和 copy() 函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档