go new
所属分类 go
浏览量 515
func new(Type) *Type
The new built-in function allocates memory.
The first argument is a type, not a value, and the value returned is a pointer to a newly allocated zero value of that type.
new(T) 分配一个 初始化为零值 的 T 值,并返回指向它的指针
分配内存,内存里存的值是对应类型的零值
只有一个参数,参数是分配的内存空间所存储的变量类型
返回的是指针
var p *T = new(T) 或 p := new(T)
var p *int
p = new(int)
*p = 1
fmt.Println("*p = ", *p)
p1 := new(int)
*p1 = 3
fmt.Println("*p1 = ", *p1)
var value int
p2 = &value
Go new 和 C++ new 的区别
Go的new分配的内存可能在栈(stack)上,也可能在堆(heap)上。C++ new分配的内存一定在堆上
Go的new分配的内存里的值是对应类型的零值,不能指定初始化值。C++ new分配内存时可以指定初始化值
Go没有构造函数,Go的new不会去调用构造函数。C++ new 会调用对应类型的构造函数
上一篇
下一篇
go 数组和切片
高庄宸迹
go make 用法
GO值类型和引用类型
go mod package 实例
go依赖查看