微信号:Golangweb

介绍:欢迎来到 Go语言社区 社区网址:www.golangweb.com APP网址:app.golangweb.com 社区非公司性质,完全个人爱好建立;做的不好的地方大家见谅.

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

2016-06-19 22:44 Golang语言社区

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

定义切片

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

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()函数返回切片作为多少元素,它可以容纳的容量的切片。以下为例子来解释片的使用:


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

len=3 cap=5 slice=[0 0 0]

Nil 切片

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


子切片

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


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

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()函数,源切片的内容复制到目标切片。下面是一个例子:


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

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]


 
Golang语言社区 更多文章 Golang语言社区--视频教程-异常处理 Golang语言社区--视频教程-锁的使用 Golang语言社区--视频教程-定时器使用 Golang语言社区--视频教程-map使用 Golang语言社区--视频教程-创建聊天服务器第一节
猜您喜欢 文本主题特征抽取实践与构想--文·博客虫 老系统头尾统一改造所带来的端适配解决方案 如何将您的应用连接到 Wi-Fi 设备? 拆轮子系列:拆 Okio IPv6 socket编程下--实现篇