Go中的new,是一个用来分配内存的内建函数,但是不像在其它语言中,它并不初始化内存,只是将其置零。也就是说,new(T)会为T类型的新项目,分配被置零的存储,并且返回它的地址,一个类型为*T的值。在Go的术语中,其返回一个指向新分配的类型为T,值为零的指针。
由于new返回的内存是被置零的,这会有助于你将数据结构设计成,每个类型的零值都可以使用,而不需要进一步初始化。这意味着,数据结构的用户可以使用new来创建数据,并正确使用。
当结构中有指针,比如下面:
type Cert struct { .... Subject *PkixName `json:"subject,omitempty"` }
指针会被初始化为nil,这个需要注意
个人微信公众号:
作者:jiankunking 出处:http://blog.csdn.net/jiankunking