golangmake和new的区别

一、Golang make和new的作用

Golang是一个可以在多种操作系统上运行的编程语言,在编写代码时,Golang提供了两个关键字make和new,这两个关键字在内存管理上扮演着重要的角色。

make和new的主要作用是创建一个新的对象或变量。区别在于,make只能用于创建切片、映射和通道等复杂的数据类型,而new则是创建一个新的变量,指针或任何基本数据类型。

二、Golang make和new的区别

在Golang中,make和new有着不同的功能。make创建的是引用类型,并返回该类型的一个已初始化的值,而new创建的是值类型的空间,并返回该类型的指针。

以切片为例,使用make初始化一个切片,并通过append将元素添加到其中:

var slice1 = make([]int, 3, 5)
slice1 = append(slice1, 1, 2, 3)

反之,使用new创建切片时,需要先指定切片的容量和长度,如下所示:

var slice2 = new([5]int)[0:3]

在使用切片时,make和new的区别可能不太明显。但在通道或映射中,make使用时则必不可少,new则无法达到相同的效果。

三、Golang make和new的使用场景

make和new在Golang中各自有着不同的使用场景。使用make主要是创建切片、映射和通道等引用类型,可以通过make初始化为已知的大小和结构。同时,make还为内部元素分配了合适的内存。在简单的数据类型中,不应使用make。

而new则是创建新的变量或指针,通常用于值类型,如int、float和struct等。new创建的变量具有默认零值,并返回该变量的指针。如果创建的是引用类型,应该使用make而不是new。

综上所述,make和new都是Golang的内置函数,它们在内存管理中扮演着重要的角色。使用make可以创建引用类型,使用new可以创建值类型的指针。在实际开发中,应根据创建的对象类型,选择合适的函数进行初始化。

本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/golang-16hw.html

郑重声明:

本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。

我们不承担任何技术及版权问题,且不对任何资源负法律责任。

如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。

如有侵犯您的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!

(0)
上一篇 2023年5月2日 上午3:18
下一篇 2023年5月2日 上午3:19

猜你喜欢