golang make和new的区别

发布时间:2024-07-07 16:21:02

在Golang中,make和new是常用的两个函数,它们都用于创建变量,但是在使用时有一些区别。下面我们来详细介绍一下它们之间的差异。

make的用法

make是一个可以创建切片、映射和通道的函数。它的语法如下:

make(T, size)

其中T表示要创建的类型,size表示要分配的大小或容量。具体参数取决于所创建的类型。例如,如果要创建一个包含10个整数的切片,可以这样写:

slice := make([]int, 10)

make函数会返回一个已经初始化并分配了内存的对象。

new的用法

new是一个用于创建值类型的函数,例如结构体和基本类型。它的语法如下:

new(T)

其中T表示要创建的类型。new函数会返回一个指向新分配的零值对象的指针。

举个例子,如果要创建一个Person结构体的实例:

person := new(Person)

new函数会返回一个指针,而不是一个实例本身。

make和new的区别

从以上的介绍可以看出,make和new函数有以下几个区别:

1. 创建不同的类型
make用于创建切片、映射和通道,而new用于创建值类型(例如结构体和基本类型)的对象。

2. 返回值类型
make函数返回的是一个已经初始化了的对象,而new函数返回的是一个指向新分配的零值对象的指针。

3. 参数不同
make函数接受两个参数,而new函数只接受一个参数。make函数的第一个参数是要创建的类型,第二个参数是大小或容量。new函数的唯一参数是要创建的类型。

总之,make和new函数有着不同的用途和返回结果。根据具体的需求选择合适的函数来创建变量是很重要的。

希望通过上面的介绍,你对make和new函数有了更清晰的认识,并且能够正确地选择使用它们来创建变量。

相关推荐