go内置函数new和make的区别

func new(Type) *Type

new 内建函数分配内存。 其第一个实参为类型,而非值,其返回值为指向该类型的新分配的零值的指针。

func make(t Type, size ...IntegerType) Type

make 内建函数分配并初始化一个类型为且仅为slice、map、或chan的对象。 与 new 相同的是,其第一个实参为类型,而非值。不同的是,make 的返回类型 与其参数相同,而非指向它的指针。其具体结果取决于具体的类型:

slice:参数size指定了它的长度,该切片的容量等于它的长度。第二个整数实参可用来指定不同的容量,但是容量值不能小于长度值。例如,make([]int, 0, 10) 会分配一个长度为0, 容量为10的切片。

map:一个空的map可以被分配足够的空间来存储指定数量的元素。参数size可以省略,在这种情况下,会分配一个小的起始大小。

channel:channel的缓存根据指定的缓存容量初始化。若 size 为零或被省略,该信道即为无缓存的。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值