温馨提示×

go语言new和make有什么区别

小亿
83
2024-02-18 17:07:20
栏目: 编程语言

在Go语言中,newmake都是用来分配内存的关键字,但它们的用法和作用对象不同。

  1. new关键字用来分配内存,并返回内存地址,主要用来分配值类型(如int、string、struct等)的内存。使用new分配的内存会被初始化为零值。
// 使用new分配整型变量的内存
var i *int
i = new(int)
  1. make关键字用来分配并初始化引用类型(如slice、map、chan等)的内存,返回的是该类型的引用。使用make分配的内存会被初始化为类型的零值。
// 使用make分配切片的内存
s := make([]int, 0, 10)

总结来说,new用于值类型的内存分配,make用于引用类型的内存分配。

0