Go语言make创建切片的五种方式

 更新时间:2025年09月18日 08:48:51   作者:liushen0528  
本文主要介绍了Go语言make创建切片的五种方式,包括指定长度、预分配容量、零长度空切片、带容量缓冲区、匿名结构体切片,具有一定的参考价值,感兴趣的可以了解一下

一、创建指定长度切片

创建指定长度的slice,元素初始化为零值,适用于知道长度且需要预先分配空间场景,代码示例如下:

s1 := make([]int, 5)

s2 := make([]string, 5)

此时创建的slice的容量于指定长度一致,当使用append追加数据超过容量时,底层自动扩容。

二、创建预分配容量切片

创建slice时指定长度以及容量,底层数组预留扩展空间,适用于会频繁append操作的场景,代码示例如下:

s3 := make([]string, 5, 10) 

三、创建零长度空切片

创建一个长度为0但是不为nil的slice,适用于需要返回空切片但避免nil判断场景,代码示例如下:

s4 := make([]string, 0)

四、创建带容量的空切片

创建一个长度为0容量为256的slice,适用于接收大量数据的缓冲区场景,代码示例如下:

s5 := make([]string, 0, 256)

五、创建匿名结构体切片

创建匿名结构体slice,让编译器根据上下文自动推断元素类型,适用于临时数据存储场景,代码示例如下:

s6 := make([]struct{}, 2)

六、创建方式对比

创建方式长度容量底层数组典型用途
make([]T, n)nn已分配固定长度集合
make([]T, n, m)nm已分配可扩展集合
make([]T, 0)00未分配空集合占位符
make([]T, 0, cap)0cap已分配预分配缓冲区
make([]struct{}, n)nn已分配轻量级占位结构

建议优先使用make([]T, n, m)进行创建slice,预先分配容量,以较少扩容操作,提升性能。

到此这篇关于Go语言make创建切片的五种方式的文章就介绍到这了,更多相关Go语言make创建切片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 初探Golang数据结构之Slice的使用

    初探Golang数据结构之Slice的使用

    在学习Go语言时,一直对数组和切片的使用场景好奇,不明白为什么推荐使用切片来代替数组,所以本文就来和大家梳理一下Slice切片的相关知识吧
    2023-09-09
  • Go 常量基础概念(声明更改只读)

    Go 常量基础概念(声明更改只读)

    这篇文章主要为大家介绍了Go常量基础概念包括常量的声明更改只读,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-08-08
  • go语言中decimal的用法详解

    go语言中decimal的用法详解

    本文主要介绍了go语言中decimal的用法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • GO语言创建钱包并遍历钱包(wallet)的实现代码

    GO语言创建钱包并遍历钱包(wallet)的实现代码

    比特币钱包实际上是一个密钥对,当你安装 一个钱包应用,或者是使用一个比特币客户端来生成一个新地址是,他就会为你生成一个密钥对,今天通过本文给大家分享go语言遍历钱包的相关知识,一起看看吧
    2021-05-05
  • Golang中switch语句和select语句的用法教程

    Golang中switch语句和select语句的用法教程

    这篇文章主要给大家介绍了关于Golang中switch和select的用法教程,文中通过示例代码将switch语句与select语句的使用方法介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • Go slog 日志打印最佳实践案例

    Go slog 日志打印最佳实践案例

    Go 1.21 引入了log/slog 包,为Go语言带来了原生的结构化日志解决方案,本文将深入探讨如何使用slog实现高效、可靠的日志记录,感兴趣的朋友跟随小编一起看看吧
    2025-10-10
  • Go官方限流器的用法详解

    Go官方限流器的用法详解

    限流器是提升服务稳定性的非常重要的组件,本文主要介绍了Go官方限流器的用法,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • Golang之模糊测试工具的使用

    Golang之模糊测试工具的使用

    本文主要介绍了Golang之模糊测试工具的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Go语言编程入门超级指南

    Go语言编程入门超级指南

    这篇文章主要介绍了Go语言编程的入门指南,包括对Go的变量及函数的基本介绍,需要的朋友可以参考下
    2016-01-01
  • Go gRPC超时控制Deadlines用法详解

    Go gRPC超时控制Deadlines用法详解

    这篇文章主要为大家介绍了Go gRPC超时控制Deadlines用法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06

最新评论