在Go语言中,new() 函数和 make() 函数有什么区别?
new() 函数
new() 函数的作用是初始化一个指向类型的指针(*T),new() 函数是内建函数,函数定义的格式如下:
func new(Type) *Type
通常使用 new() 函数来分配空间。传递给 new() 函数的是一个类型,不是一个值。返回值是指向这个新分配的零值的指针。
make() 函数
make( )函数的作用是为 slice()、map() 或 chan() 初始化并返回引用的 T。
make() 函数是内建函数,函数定义的格式如下:
func make(Type, size IntegerType) Type
说明:
-
第一个参数是一个类型,第二个参数是长度。
-
返回值是一个类型。
总结
Go语言 make(T, args) 函数的目的与 new(T) 不同,仅仅用于创建 Slice()、Map() 和 Channel(),并且返回类型是 T(不是 T*)的一个初始化的(不是零值)的实例。
本文链接:http://task.lmcjl.com/news/14826.html