一、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
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及ag旗舰厅在线的版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的ag旗舰厅在线的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!