golang切片需要make吗


本文摘自php中文网,作者尚,侵删。

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

通过 make() 函数创建切片

使用 Golang 内置的 make() 函数创建切片,此时需要传入一个参数来指定切片的长度:

1

2

3

// 创建一个整型切片

// 其长度和容量都是 5 个元素

slice := make([]int, 5)

此时只指定了切片的长度,那么切片的容量和长度相等。也可以分别指定长度和容量:

1

2

3

// 创建一个整型切片

// 其长度为 3 个元素,容量为 5 个元素

slice := make([]int, 3, 5)

分别指定长度和容量时,创建的切片,底层数组的长度是指定的容量,但是初始化后并不能访问所有的数组元素。

注意,Golang 不允许创建容量小于长度的切片,当创建的切片容量小于长度时会在编译时刻报错:

1

2

3

// 创建一个整型切片

// 使其长度大于容量

myNum := make([]int, 5, 3)

通过字面量创建切片

另一种常用的创建切片的方法是使用切片字面量,这种方法和创建数组类似,只是不需要指定[]运算符里的值。初始的长度和容量会基于初始化时提供的元素的个数确定:

1

2

3

4

5

6

// 创建字符串切片

// 其长度和容量都是 3 个元素

myStr := []string{"Jack", "Mark", "Nick"}

// 创建一个整型切片

// 其长度和容量都是 4 个元素

myNum := []int{10, 20, 30, 40}

当使用切片字面量创建切片时,还可以设置初始长度和容量。要做的就是在初始化时给出所需的长度和容量作为索引。下面的语法展示了如何使用索引方式创建长度和容量都是100个元素的切片:

1

2

3

// 创建字符串切片

// 使用空字符串初始化第 100 个元素

myStr := []string{99: ""}

更多golang知识请关注golang教程栏目。

以上就是golang切片需要make吗的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

nginx 服务搭建

详解windows10+golang+grpc环境搭建

使用golang 做复杂流程自动化

golang map是否有顺序

[go] go语言实战-为博客园增加gofly在线客服功能

golang 和 php 哪个性能更强?

golang并发不是并行

基于go语言构建的万亿级流量大数据平台架构|文末彩蛋

3.树莓派常用软件&篇程语言&篇程环境(32位/64位)

jack liu's golang personal summary notes

更多相关阅读请进入《golang》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...