首页  

go new     所属分类 go 浏览量 391
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依赖查看