golang new make 区别

发布时间:2024-12-23 02:28:45

Golang是一门开源的编程语言,由Google团队开发。它在性能和并发效率方面有着出色的表现,因此越来越受到开发者的喜爱。在Golang中,我们经常使用new和make来创建变量和数据结构。然而,它们之间存在一些差异。

new

首先,让我们来看看new关键字。它是一个内置函数,并返回一个指向新分配内存的指针。通常情况下,我们使用new来创建指向基本类型的指针,如int、float64等。

例如,当我们使用new创建一个整数指针时,我们可以这样写:

var p *int
p = new(int)

这段代码将分配内存用于存储一个整数,并将其地址赋给p指针。此时,p指针指向的内存是零值,即0。

make

接下来,我们来介绍make关键字。与new不同,make用于创建切片、映射和通道等引用类型的数据结构。

例如,我们可以使用make来创建一个切片:

var s []int
s = make([]int, 5)

上述代码创建了一个长度为5的整数切片。在使用make创建切片时,我们需要指定切片的类型以及切片的长度。切片被初始化为对应类型的零值,如整数切片的零值是0。

小结

在Golang中,new和make是用于创建变量和数据结构的关键字。它们之间的区别在于,new用于创建指向基本类型的指针,而make用于创建引用类型的数据结构,如切片、映射和通道等。

当我们使用new创建变量时,它将返回分配内存的指针,并且该内存被初始化为零值。而使用make创建数据结构时,它会返回已经初始化的数据结构,例如切片的长度和容量都被初始化。

因此,我们应根据具体需求选择适合的关键字。如果我们只是想要一个空指针,那么可以使用new;如果我们需要一个已经初始化的数据结构,那么应该使用make。

相关推荐