在Go語言中,new
和make
都是用來分配內(nèi)存的關鍵字,但它們的用法和作用對象不同。
new
關鍵字用來分配內(nèi)存,并返回內(nèi)存地址,主要用來分配值類型(如int、string、struct等)的內(nèi)存。使用new
分配的內(nèi)存會被初始化為零值。// 使用new分配整型變量的內(nèi)存
var i *int
i = new(int)
make
關鍵字用來分配并初始化引用類型(如slice、map、chan等)的內(nèi)存,返回的是該類型的引用。使用make
分配的內(nèi)存會被初始化為類型的零值。// 使用make分配切片的內(nèi)存
s := make([]int, 0, 10)
總結來說,new
用于值類型的內(nèi)存分配,make
用于引用類型的內(nèi)存分配。