前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >go语言make的用法

go语言make的用法

原创
作者头像
周辰晨
发布2024-03-06 12:02:28
2510
发布2024-03-06 12:02:28
举报
文章被收录于专栏:软件测试架构师俱乐部

在Go语言中,make函数用于初始化内建的数据类型(如切片、映射和通道),分配内存并返回初始化的实例。

以下是make的一些基本用法:

1. 初始化切片(Slice): make可以用来创建一个切片,同时指定其长度和容量。

代码语言:javascript
复制
// make([]Type, length, capacity)
s := make([]int, 0, 10) // 创建一个整型切片,长度为0,容量为10

如果容量被省略,则容量被设置为与长度相等。

代码语言:javascript
复制
s := make([]int, 10) // 创建一个整型切片,长度和容量都是10

2. 初始化映射(Map): make可以用来创建一个映射,并允许指定初始容量。

代码语言:javascript
复制
// make(map[KeyType]ValueType, initialCapacity)
m := make(map[string]int, 10) // 创建一个字符串到整型的映射,容量是10

映射的容量是可选的,如果省略,则按默认方式初始化。

代码语言:javascript
复制
m := make(map[string]int) // 创建一个字符串到整型的映射,默认容量

3. 初始化通道(Channel): make也用于创建通道,并指定通道的缓冲大小。

代码语言:javascript
复制
// make(chan Type, bufferCapacity)
c := make(chan int, 5) // 创建一个整型通道,缓冲容量为5

如果缓冲大小为0或被省略,通道是无缓冲的。

代码语言:javascript
复制
c := make(chan int) // 创建一个无缓冲的整型通道

一个被make创建的通道是双向的,但是,你也可以使用类型转换让其变为单向。

这是make的基本用法,但需要注意的是make只适用于切片、映射和通道这三种类型,而其他如整型、字符串等类型,创建时不需要make函数,可以直接声明或使用new函数来创建。例如:

代码语言:javascript
复制
var x int      // 声明一个整型变量x
str := new(string) // 使用new来创建一个字符串指针

记住,make返回的是类型的实例(已初始化),而new返回的是指向该类型的指针(内存零值)。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档