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