new 和make的區別

make使用方法

var s[]int:nil切片。需要使用make分配空間。

s=make([]int,10)

var s=[]int{} 空切片。不需要使用make分配空間。

var m map[int] int :nil map,需要使用make分配空間

m=make(map[int] int ,10)

var  m =map[int]int{} 空map,不需要使用make分配空間、

new 使用方式

var a *int

a=new(int)

*a=100;

1:都是用來做內存分配的。

2:make 只用於引用(slice map channel )的初始化。返回的還是這三個引用類型的本身

3:new 用於類型的內存分配,並且內存對應的值爲類型的零值(int,int64等 零值爲0,string 零值爲"",bool零值爲false),返回的是指向類型的指針。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章