golang new 和make 的區別

2021-10-05 23:31:21 字數 342 閱讀 1810

1.go語言中new跟make是內建函式,主要用來建立分配型別記憶體。

2.new(t)建立乙個沒有任何資料的型別為t的例項,並返回該例項的指標;

3.make(t, args)只能建立 slice、map和channel,並且返回乙個有初始值args(非零)的t型別的例項,非指標。

4.二者都是記憶體的分配(堆上),但是make只用於slice、map以及channel的初始化(非零值);而new用於型別的記憶體分配,並且記憶體置為零。所以在我們編寫程式的時候,就可以根據自己的需要很好的選擇了。

make返回的還是這三個引用型別本身;而new返回的是指向型別的指標。

Golang new和 make的區別

go提供了兩種分配原語,即new和make。它們所做的事情是不一樣的,所應用的型別也不同。new用來分配記憶體,但與其他語言中的同名函式不同,它不會初始化記憶體,只會講記憶體置零 也就是說,new t 會為型別為t的新項分配已置零的記憶體空間,並返回他的位址,也就是乙個型別為 t的值。用go的術語來...

Golang new和make有啥區別?

func new type typevalue bool new bool false value int32 new int32 0 value float32 new float32 0.0 value string new string 可以看到,對於new,會建立每個型別所對應的零值。但還要...

(一)make之make和makefile初識

1.1 make 和makefile 1.1.1 make make 是乙個應用程式 1.1.2 makefile makefile是乙個描述檔案 1.1.3 makefile本質 makefile實際就是乙個指令碼程式,類似於shell指令碼。由於 塊中沒有make的,所以用bash來代替make...