溫馨提示×

go語言new和make有什么區(qū)別

小億
84
2024-02-18 17:07:20
欄目: 編程語言

在Go語言中,newmake都是用來分配內(nèi)存的關鍵字,但它們的用法和作用對象不同。

  1. new關鍵字用來分配內(nèi)存,并返回內(nèi)存地址,主要用來分配值類型(如int、string、struct等)的內(nèi)存。使用new分配的內(nèi)存會被初始化為零值。
// 使用new分配整型變量的內(nèi)存
var i *int
i = new(int)
  1. make關鍵字用來分配并初始化引用類型(如slice、map、chan等)的內(nèi)存,返回的是該類型的引用。使用make分配的內(nèi)存會被初始化為類型的零值。
// 使用make分配切片的內(nèi)存
s := make([]int, 0, 10)

總結來說,new用于值類型的內(nèi)存分配,make用于引用類型的內(nèi)存分配。

0