是一种开源编程语言,2009年由Google推出,它作为新兴编程语言,在近几年十分火热,国内的一些大型公司,如七牛、阿里等都开始大规模使用Go语言开发各自的项目,在学习Go语言的的过程中,很多人对于new和make很难分清楚,那么你知道Golang开发中new和make的区别是什么吗?如果不知道,这篇文章一定要看,会给你带来一定的帮助。

Go培训

       在使用Go开发的过程中,我们会发现new和make的功能类似,以至于很多小伙伴不清楚具体什么场景用哪个,本篇文章为大家总结了这个问题。

       ·new:是一个用来分配内存的内置函数,与C++不同的是,它不初始化内存,只是将其归零,也就相当于,new(X)会为X的新项目分配被归零的存储,且返回它的地址,其中,第一个参数是类型,返回值是类型的指针,其值被初始化为‘0’,对于不同的数据类型,0值的意义也是不一样的,比如int初始化为0,bool初始化为false等等。

       ·make:是Golang的内置函数,仅用于分配和初始化slice、map及channel类型的对象,三种类型都是结构,返回值为类型而不是指针,例如slice是一个三元描述符,包含一个指向数据(在数组中)的指针,长度以及容量,在这些项被初始化前,slice都是nil的,对于这三者,make初始化这些内部数据结构,并准备好可用的值。

       需要注意的是,make只用于map、slice和channel,并且不反悔指针,想要获得一个显式的指针,使用new进行分配,或者显式地使用一个变量的地址。

       想要入门Go语言的,可以选择老男孩教育,我们支持免费试听,有不会的知识点可以及时的询问老师,老师也会积极回答你,我们的老师都是有着丰富经验的专业人士,可以帮你快速入门及精通GO语言。

       推荐阅读: