go语言中make的用法

本文详细介绍了Go语言中make函数如何用于初始化切片、映射和通道,包括长度、容量和缓冲的概念,以及make与new函数的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

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

s := make([]int, 10) // 创建一个整型切片,长度和容量都是10

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

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

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

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

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

// make(chan Type, bufferCapacity)
c := make(chan int, 5) // 创建一个整型通道,缓冲容量为5

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

c := make(chan int) // 创建一个无缓冲的整型通道

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值